perm filename TRAP.SAV[TUG,DEK] blob
sn#779690 filedate 1985-01-15 generic text, type T, neo UTF8
This is METAFONT, Version 0.6 (preloaded base=trap 84.12.10) 10 DEC 1984 20:40
** &trap trap
(trap.mf
{if}
{known(0)}
{not(true)}
{false}
{known("")}
{true}
/*\`'@#->begingroup.message(SUFFIX1)&str(SUFFIX0)&jobname&char.ASCII'`&s
tr(SUFFIX2)!endgroup
(SUFFIX0)<-/*\
(SUFFIX1)<-`'
(SUFFIX2)<-pass2
{begingroup}
{message}
`'->begingroup'`endgroup
(SUFFIX0)<-
(SUFFIX1)<-`'
{begingroup}
'`->"\*/"
{endgroup}
{("\*/")&("/*\")}
{jobname}
{("\*//*\")&("trap")}
'`->"\*/"
{ASCII("\*/")}
{char(92)}
{("\*//*\trap")&("\")}
{("\*//*\trap\")&("pass2!")}
\*//*\trap\pass2!
{endgroup}
{outer}
{let}
{delimiters}
! Missing symbolic token inserted.
<inserted text>
INACCESSIBLE
l.21 ...t next=\; delimiters ↑~7
! fi
Sorry: You can't redefine a number, string, or expr.
I've inserted an inaccessible symbol so that your
definition will be completed without mixing me up too badly.
! Extra tokens will be flushed.
<to be read again>
!
l.21 ... next=\; delimiters ↑~7!
fi
I've just read as much of that statement as I could fathom,
so a semicolon should have been next. It's very puzzling...
but I'll try to get myself back together, by ignoring
everything up to the next `;'. Please insert a semicolon
now in front of anything that you don't want me to delete.
(See Chapter xx of The METAFONTbook for an example.)
! Forbidden token found while scanning to the end of the statement.
<inserted text>
;
<to be read again>
\
l.22 next\
; % the second pass will now compute silently; the ...
A previous error seems to have propagated,
causing me to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
{\}
{batchmode}
! An expression can't begin with `endgroup'.
<inserted text>
0
<to be read again>
endgroup
l.23 batchmode; ↑~7,endgroup
pausing:=1; exitif p exitif bool...
I'm afraid I need some sort of value in order to continue,
so I've tentatively inserted `0'. You may want to
delete this zero and insert something else;
see Chapter xx of The METAFONTbook for an example.
! Missing ` INACCESSIBLE' has been inserted.
<to be read again>
endgroup
l.23 batchmode; ↑~7,endgroup
pausing:=1; exitif p exitif bool...
I found no right delimiter to match a left one. So I've
put one in, behind the scenes; this may fix the problem.
! Extra `endgroup'.
<recently read> endgroup
l.23 batchmode; ↑~7,endgroup
pausing:=1; exitif p exitif bool...
I'm not currently working on a `begingroup',
so I had better not try to end anything.
{pausing:=1}
{exitif}
{exitif}
{pencircle}
{endfor}
! Extra `endfor'.
l.23 ...ean pen pencircle endfor
I'm not currently working on a for loop,
so I had better not try to end anything.
{scantokens}
{begingroup}
{message}
{char(0)}
{("↑↑@")&("watch this")}
↑↑@watch this
{-(1)}
{char(-1)}
{("pair p[],';")&("↑↑?")}
{endgroup}
{pen(future pen)}
{boolean(true)}
{true}
! No loop is in progress.
<to be read again>
pair
<scantokens> pair
p[],';↑↑?
<to be read again>
path
l.25 path
p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
Why say `exitif' when there's nothing to exit from?
>> p
! Undefined condition will be treated as `false'.
<to be read again>
pair
<scantokens> pair
p[],';↑↑?
<to be read again>
path
l.25 path
p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
The expression shown above should have had a definite
true-or-false value. I'm changing it to `false'.
{false}
! Missing `;' has been inserted.
<to be read again>
pair
<scantokens> pair
p[],';↑↑?
<to be read again>
path
l.25 path
p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
After `exitif <boolean exp>' I expect to see a semicolon.
I shall pretend that one was there.
{pair}
! Text line contains an invalid character.
<scantokens> pair p[],';↑↑?
<to be read again>
path
l.25 path
p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
A funny symbol that I can't read has just been input.
Continue, and I'll forget that it ever happened.
{path}
{-(2)}
{-(1)}
{turningnumber((xpart ',ypart '))}
Path at line 25, before choices:
(1,-2){curl 1}
..(2,-1)
..(2.5,0.5)
..(1,2)
..{curl 1}(0,2.5)
Path at line 25, after choices:
(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
..(0,2.5)
{(unknown path qw)=(path)}
{numeric}
! Enormous number has been reduced.
l.26 ...[$] ]]=10000000000000000
; "this string constant is in...
I can't handle numbers bigger than about 4095.99998;
so I've changed your constant to that maximum amount.
{(p[[ [-1] ]])=(4095.99998)}
## p[[ [-1] ]]=4095.99998
! Incomplete string token has been flushed.
l.26 ...g constant is incomplete
Strings should finish on the same line as they began.
I've deleted the partial string; you might want to
insert another by typing, e.g., `I"new string"'.
{string}
{if}
{true}
{true}
{boolean}
{fi}
{showvariable}
boolean.boolean=unknown boolean
! OK.
l.28 ...n; showvariable boolean;
def\\= =end enddef;
{def}
{picture}
{pen}
! Illegal suffix of declared variable will be flushed.
<to be read again>
[
<to be read again>
"a"
l.30 pen p~[]~,q["a"
,qq; p~1~=q=pencircle scaled mexp(-3016.5...
Variables in declarations must consist entirely of
names and collective subscripts, e.g., `x[]a'.
Are you trying to use a reserved word in a variable name?
I'm going to discard the junk I found here,
up to the next comma or the end of the declaration.
{pencircle}
{-(3016.57654)}
{mexp(-3016.57654)}
{(future pen)scaled(0)}
Pen polygon at line 30 (newly created):
(0.5,0)
.. (0,0.5)
.. (-0.5,0)
.. (0,-0.5)
.. cycle
{(unknown pen q)=(pen)}
{(unknown pen p~1~)=(pen)}
{transform}
! Illegal suffix of declared variable will be flushed.
<to be read again>
0
l.31 transform p,pp0
; qq=makepen((1,0)..cycle) xscaled hex "1...
Variables in declarations must consist entirely of
names and collective subscripts, e.g., `x[]a'.
Explicit subscripts like `x15a' aren't permitted.
I'm going to discard the junk I found here,
up to the next comma or the end of the declaration.
Path at line 31, before choices:
(1,0)
..cycle
Path at line 31, after choices:
(1,0)..controls (1,0) and (1,0)
..cycle
{makepen(path)}
{hex("1000")}
! Number too large (4096).
<to be read again>
;
l.31 ...cle) xscaled hex "1000";
I have trouble with numbers greater than 4095; watch out.
{(future pen)xscaled(4096)}
! Pen too large.
<to be read again>
;
l.31 ...cle) xscaled hex "1000";
The cycle you specified has a coordinate of 4095.5 or more.
So I've replaced it by the trivial path `(0,0)..cycle'.
Pen polygon at line 31 (newly created):
(0,0)
.. cycle
{(unknown pen qq)=(pen)}
Path at line 32, before choices:
(0,0)
..(1,0)
..(0,1)
..(0,0)
..(1,0)
..(0,1)
..cycle
Path at line 32, after choices:
(0,0)..controls (0.29056,-0.29056) and (0.75859,-0.30772)
..(1,0)..controls (1.51964,0.66237) and (0.66237,1.51964)
..(0,1)..controls (-0.30772,0.75859) and (-0.29056,0.29056)
..(0,0)..controls (0.29056,-0.29056) and (0.75859,-0.30772)
..(1,0)..controls (1.51964,0.66237) and (0.66237,1.51964)
..(0,1)..controls (-0.30772,0.75859) and (-0.29056,0.29056)
..cycle
{makepen(path)}
! Pen cycle must be convex.
<to be read again>
;
l.32 ...)..(1,0)..(0,1)..cycle);
The cycle you specified either has consecutive equal points
or turns right or turns through more than 360 degrees.
So I've replaced it by the trivial path `(0,0)..cycle'.
Pen polygon at line 32 (newly created):
(0,0)
.. cycle
{qq:=pen}
{vardef}
! Missing parameter type; `expr' will be assumed.
<to be read again>
)
l.33 ...ext suffix a,b endtext()
)=showall #@; p.a.b() enddef;
You should've had `expr' or `suffix' or `text' here.
{expandafter}
{\}
{let}
\\->=end
{outer}
{pencircle}
{(future pen)scaled(4.5)}
Pen polygon at line 34 (newly created):
(1,-2)
.. (2,-1)
.. (2.5,0)
.. (2,1)
.. (1,2)
.. (0,2.5)
.. (-1,2)
.. (-2,1)
.. (-2.5,0)
.. (-2,-1)
.. (-1,-2)
.. (0,-2.5)
.. cycle
{qq:=pen}
{((6,12))-((xpart p7,ypart p7))}
{((0,1))transformed((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p
))}
{(x)-(x)}
{(2)/(0)}
>> 2
! Division by zero.
<to be read again>
,
l.35 ...)transformed p=(2/(x-x),
3/0)transformed p;
You're trying to divide the quantity shown above the error
message by zero. I'm going to divide it by one instead.
! Division by zero.
l.35 ...ansformed p=(2/(x-x),3/0
)transformed p;
I'll pretend that you meant to divide by 1.
{((2,3))transformed((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p
))}
{((linearform,linearform))=((linearform,linearform))}
## yypart p=-yxpart p
## xypart p=-xxpart p
{((-xpart p7+6,-ypart p7+12))=((linearform,linearform))}
## ypart p7=yxpart p-ypart p+12
## xpart p7=xxpart p-xpart p+6
{\}
{if}
{string(unknown string p~[-1])}
{true}
{(p0.1 0.2)-(p0.1 0.2)}
! The token `endtext' is no longer a right delimiter.
l.36 ...1.2-p.1.199999,1 endtext
transformed p;
Strange: This token has lost its former meaning!
I'll read it as a right delimiter this time;
but watch out, I'll probably miss it later.
{((0,1))transformed((xpart p,ypart p,xxpart p,-xxpart p,yxpart p,-yxpart
p))}
{((linearform,linearform))=((linearform,linearform))}
## yxpart p=ypart p-6
#### ypart p7=6
## xxpart p=xpart p-3
#### xpart p7=3
{(unknown path p1 2p)=((3,6))}
{showstopping:=0}
{showvariable}
p=(xpart p,ypart p,xpart p-3,-xpart p+3,ypart p-6,-ypart p+6)
p[]=pair
p[][]=numeric
p[][]p=unknown path
p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)->begingroup.showall ETC.
p[]~=unknown boolean
p~=path
p~[]=unknown string
p~[]~=unknown pen
p~[]~[][]=unknown picture
p~[-1]=unknown string p~[-1]
p~1~=pen
p[[ [] ]]=numeric
p[[ [-1] ]]=4095.99998
p0.1 0.2=p0.1 0.2
p1 2p=path
p7=(3,6)
{((xpart p,ypart p,xpart p-3,-xpart p+3,ypart p-6,-ypart p+6))=((xpart p
,ypart p,xpart p-3,-xpart p+3,ypart p-6,-ypart p+6))}
{let}
{let}
{xxpart((xpart p,ypart p,xpart p-3,-xpart p+3,ypart p-6,-ypart p+6))}
{(xpart p-3)+(0.002)}
{yxpart((xpart p,ypart p,xpart p-3,-xpart p+3,ypart p-6,-ypart p+6))}
{((xpart p2,ypart p2))-((xpart p1,ypart p1))}
{(1)*((linearform,linearform))}
{((xpart p1,ypart p1))+((linearform,linearform))}
{(y)+(0.00002)}
{yypart((xpart p,ypart p,xpart p-3,-xpart p+3,ypart p-6,-ypart p+6))}
{xypart((xpart p,ypart p,xpart p-3,-xpart p+3,ypart p-6,-ypart p+6))}
{((5,y))=((-ypart p+6,-xpart p+3))}
## y=-xpart p+3
## ypart p=1
#### yxpart p=-5
#### yypart p=5
{((5,-xpart p+3.00002))=((5,-xpart p+3))}
{((xpart p2,ypart p2))=((5,-xpart p+3))}
## ypart p2=-xpart p+3
## xpart p2=5
{((xpart p-2.998,-5))=((5,-xpart p+3))}
## xpart p=8
#### ypart p2=-5
#### y=-5
#### xxpart p=5
#### xypart p=-5
! Inconsistent equation (off by -0.002).
<to be read again>
;
l.38 ...,y)=(yypart p,xypart p);
The equation I just read contradicts what was said before.
But don't worry; continue and I'll just ignore it.
{reverse(path)}
{(path)transformed((8,1,5,-5,-5,5))}
{(path)=(unknown path p2 3p)}
p1 2p~(SUFFIX2)(SUFFIX3)(EXPR4)->begingroup.showall(SUFFIX0);p(SUFFIX2)(
SUFFIX3)((EXPR4)endgroup
(SUFFIX0)<-p1 2p
(SUFFIX1)<-~
(SUFFIX2)<-
(SUFFIX3)<-2 3p~
! A primary expression can't begin with `right delimiter that matches ('
.
<inserted text>
0
<to be read again>
)
l.40 ...000000001]2p~(,[2]3p~,-)
=p~1~2[pausing];
I'm afraid I need some sort of value in order to continue,
so I've tentatively inserted `0'. You may want to
delete this zero and insert something else;
see Chapter xx of The METAFONTbook for an example.
{-(0)}
(EXPR4)<-0
{begingroup}
{showall}
>> Path at line 40:
(3,6)
p2 3p~(SUFFIX2)(SUFFIX3)(EXPR4)->begingroup.showall(SUFFIX0);p(SUFFIX2)(
SUFFIX3)((EXPR4)endgroup
(SUFFIX0)<-p2 3p
(SUFFIX1)<-~
! Missing `,' has been inserted.
<to be read again>
(0)
p1 2p~->...IX2)(SUFFIX3)((EXPR4)
endgroup
l.40 ...000000001]2p~(,[2]3p~,-)
=p~1~2[pausing];
I've finished reading a macro argument and am about to
read another; the arguments weren't delimited correctly.
You might want to delete some tokens before continuing.
(SUFFIX2)<-
! Missing `,' has been inserted.
<to be read again>
(0)
p1 2p~->...IX2)(SUFFIX3)((EXPR4)
endgroup
l.40 ...000000001]2p~(,[2]3p~,-)
=p~1~2[pausing];
I've finished reading a macro argument and am about to
read another; the arguments weren't delimited correctly.
You might want to delete some tokens before continuing.
(SUFFIX3)<-
! Missing `)' has been inserted.
<to be read again>
endgroup
l.40 ...000000001]2p~(,[2]3p~,-)
=p~1~2[pausing];
I've gotten to the end of the macro parameter list.
You might want to delete some tokens before continuing.
(EXPR4)<-0
{begingroup}
{showall}
>> Path at line 40:
(28,-19)..controls (-7,16) and (63,-54)
..(8,1)
>> (8,1,5,-5,-5,5)
! Isolated expression.
<to be read again>
(
p2 3p~->...;p(SUFFIX2)(SUFFIX3)(
(EXPR4)endgroup
<to be read again>
endgroup
l.40 ...000000001]2p~(,[2]3p~,-)
=p~1~2[pausing];
I couldn't find an `=' or `:=' after the
expression that is shown above this error message,
so I guess I'll just ignore it and carry on.
! Extra tokens will be flushed.
<to be read again>
(
p2 3p~->...;p(SUFFIX2)(SUFFIX3)(
(EXPR4)endgroup
<to be read again>
endgroup
l.40 ...000000001]2p~(,[2]3p~,-)
=p~1~2[pausing];
I've just read as much of that statement as I could fathom,
so a semicolon should have been next. It's very puzzling...
but I'll try to get myself back together, by ignoring
everything up to the next `;'. Please insert a semicolon
now in front of anything that you don't want me to delete.
(See Chapter xx of The METAFONTbook for an example.)
{endgroup}
{endgroup}
{(vacuous)=(unknown picture p~1~2 1)}
>> vacuous
>> unknown picture p~1~2 1
! Equation cannot be performed (vacuous=unknown picture).
<to be read again>
;
l.40 ...2]3p~,-)=p~1~2[pausing];
I'm sorry, but I don't know how to make such things equal.
(See the two expressions just above the error message.)
{vardef}
Runaway definition?
if.p(SUFFIX1)(SUFFIX1)=(SUFFIX1)(SUFFIX1)p.fi
! Forbidden token found while scanning the definition of p~[].
<inserted text>
enddef
<to be read again>
;
l.41 ...tiary t=if p@ @=@ @p fi;
vardef p[][]p~[]=BAD; inner ;;
I suspect you have forgotten an `enddef',
causing me to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
{vardef}
! This variable already starts with a macro.
l.41 ...@p fi; vardef p[][]p~[]=
BAD; inner ;;
After `vardef a' you can't say `vardef a.b'.
So I'll have to discard this definition.
Runaway definition?
BAD
! Forbidden token found while scanning the definition of a bad variable.
<inserted text>
enddef
<to be read again>
;
l.41 ...i; vardef p[][]p~[]=BAD;
inner ;;
I suspect you have forgotten an `enddef',
causing me to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
{inner}
{show}
{-(2)}
p~[-2]@#<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1)=(SUFFIX1)(SUFFIX1)
p.fi.endgroup
(SUFFIX0)<-p~
(SUFFIX1)<-[-2]
(SUFFIX2)<-~
! A tertiary expression can't begin with `['.
<inserted text>
0
<to be read again>
[
<to be read again>
(3000)
<to be read again>
,
l.42 show p~[-2]~[3000,
x]++4000>path p3; showvariable p,P;
I'm afraid I need some sort of value in order to continue,
so I've tentatively inserted `0'. You may want to
delete this zero and insert something else;
see Chapter xx of The METAFONTbook for an example.
{(x)-(3000)}
{(0)*(x-3000)}
{(3000)+(0)}
{(3000)++(4000)}
(EXPR3)<-4999.99998
{begingroup}
{if}
{(p[-2][-2])=(-2)}
>> p[-2][-2]+2
! Unknown relation will be considered false.
<to be read again>
[-2]
p~[-2]->...1)=(SUFFIX1)(SUFFIX1)
p.fi.endgroup
<to be read again>
>
l.42 show p~[-2]~[3000,x]++4000>
path p3; showvariable p,P;
Oh dear. I can't decide if the expression above is positive,
negative, or zero. So this comparison test won't be `true'.
{false}
! Missing `:' has been inserted.
<to be read again>
[-2]
p~[-2]->...1)=(SUFFIX1)(SUFFIX1)
p.fi.endgroup
<to be read again>
>
l.42 show p~[-2]~[3000,x]++4000>
path p3; showvariable p,P;
There should've been a colon after the condition.
I shall pretend that one was there.
{endgroup}
{path((xpart p3,ypart p3))}
{(vacuous)>(false)}
>> vacuous
>> false
! Not implemented: (vacuous)>(boolean).
<to be read again>
;
l.42 ...~[3000,x]++4000>path p3;
showvariable p,P;
I'm afraid I don't know how to apply that operation to that
combination of types. Continue, and I'll return the second
argument (see above) as the result of the operation.
>> false
{showvariable}
p=(8,1,5,-5,-5,5)
p[]=pair
p[][]=numeric
p[][]p=unknown path
p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)->begingroup.showall ETC.
p[]~=unknown boolean
p~=path
p~[]@#=macro:<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1) ETC.
p[[ [] ]]=numeric
p[[ [-1] ]]=4095.99998
p[-2][-2]=p[-2][-2]
p0.1 0.2=p0.1 0.2
p1=(xpart p1,ypart p1)
p1 2p=path
p2=(5,-5)
p2 3p=path
p3=(xpart p3,ypart p3)
p7=(3,6)
> P=tag
{numeric}
{(2)*(alpha)}
{(p3~)=(2alpha)}
## alpha=0.5p3~
{(1)/(-1)}
{(3)*(beta)}
{(p[-1]~)=(3beta)}
## beta=0.33333p[-1]~
{begingroup}
{save}
{showvariable}
> p=tag
{(3)*(0.33333(SAVED)p[-1]~)}
{((SAVED)p[-1]~)=(1)}
## (SAVED)p[-1]~=1
#### beta=0.33333
{endgroup}
{showvariable}
p=(8,1,5,-5,-5,5)
p[]=pair
p[][]=numeric
p[][]p=unknown path
p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)->begingroup.showall ETC.
p[]~=numeric
p~=path
p~[]@#=macro:<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1) ETC.
p[[ [] ]]=numeric
p[[ [-1] ]]=4095.99998
p[-2][-2]=p[-2][-2]
p[-1]~=1
p0.1 0.2=p0.1 0.2
p1=(xpart p1,ypart p1)
p1 2p=path
p2=(5,-5)
p2 3p=path
p3=(xpart p3,ypart p3)
p3~=p3~
p7=(3,6)
{def}
{def}
! Missing `=' has been inserted.
<to be read again>
false
l.45 ...enddef;def!primary!false
):!fi enddef;
The next thing in this `def' should have been `=',
because I've already looked at the definition heading.
But don't worry; I'll pretend that an equals sign
was present. Everything from here to `enddef'
will be the replacement text of this macro.
{def}
{(path)scaled(-1)}
Path at line 46, before choices:
(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
..(0,2.5)
..(-1,2)..controls (-1.37755,1.71404) and (-1.71404,1.37755)
..(-2,1)..controls (-2.33353,0.55965) and (-2.59729,0.04124)
..(-2.5,-0.5)..controls (-2.36812,-1.23369) and (-1.6712,-1.65662)
..(-1,-2)..controls (-0.66821,-2.16974) and (-0.33485,-2.33641)
..(0,-2.5)
..cycle
Path at line 46, after choices:
(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
..(0,2.5)..controls (-0.37186,2.68167) and (-0.668,2.25146)
..(-1,2)..controls (-1.37755,1.71404) and (-1.71404,1.37755)
..(-2,1)..controls (-2.33353,0.55965) and (-2.59729,0.04124)
..(-2.5,-0.5)..controls (-2.36812,-1.23369) and (-1.6712,-1.65662)
..(-1,-2)..controls (-0.66821,-2.16974) and (-0.33485,-2.33641)
..(0,-2.5)..controls (0.37186,-2.68167) and (0.668,-2.25146)
..cycle
{makepen(path)}
Pen polygon at line 46 (newly created):
(1,-2)
.. (2,-1)
.. (2.5,0.5)
.. (1,2)
.. (0,2.5)
.. (-1,2)
.. (-2,1)
.. (-2.5,-0.5)
.. (-1,-2)
.. (0,-2.5)
.. cycle
{qq:=pen}
{primarydef}
{secondarydef}
//<expr>->
//<expr>->
{pencircle}
{length(path)}
{(future pen)slanted(1)}
{((3,6))-((5,-5))}
_aa__<secondary>->if(true
{(0.1)*(15)}
{odd(1.50009)}
{not(false)}
{known((8,1,5,-5,-5,5))}
{(true)and(true)}
(EXPR0)<-true
{if}
{true}
!<primary>->false):(EXPR0)fi
(EXPR0)<-(5,-5)
{false}
{(true)or(false)}
{true}
{fi}
{-((5,-5))}
{-((5,-5))}
{+(1)}
{-(1)}
>> -1
! Improper curl has been replaced by 1.
<to be read again>
)
l.51 {curl- +1)
..tension atleast1..cycle sqrt2++sqrt2***[[]];
A curl must be a known, nonnegative number.
! Missing `}' has been inserted.
<to be read again>
)
l.51 {curl- +1)
..tension atleast1..cycle sqrt2++sqrt2***[[]];
I've scanned a direction spec for part of a path,
so a right brace should have come next.
I shall pretend that one was there.
Path at line 51, before choices:
(-5,5)
Path at line 51, after choices:
(-5,5)
Path at line 51, before choices:
(3,6)..controls (5,-5) and (-5,5)
..(-5,5)..tension atleast1
..{2896.30943,-2896.30934}cycle
Path at line 51, after choices:
(3,6)..controls (5,-5) and (-5,5)
..(-5,5)..controls (-3.29726,7.86205) and (0.64516,8.35484)
..cycle
! Missing `)' has been inserted.
<to be read again>
sqrt
l.51 ...ion atleast1..cycle sqrt
2++sqrt2***[[]];
I found no right delimiter to match a left one. So I've
put one in, behind the scenes; this may fix the problem.
{((-2,11))subpath(path)}
{reverse(path)}
{makepen(path)}
**->[[showall(EXPR0)*(EXPR1)]]
(EXPR0)<-future pen
(EXPR1)<-future pen
{begingroup}
{showall}
{(future pen)*(future pen)}
>> future pen
>> future pen
! Not implemented: (future pen)*(future pen).
<to be read again>
]]
<to be read again>
sqrt
l.51 ...ion atleast1..cycle sqrt
2++sqrt2***[[]];
I'm afraid I don't know how to apply that operation to that
combination of types. Continue, and I'll return the second
argument (see above) as the result of the operation.
! Pen path must be a cycle.
<to be read again>
]]
<to be read again>
sqrt
l.51 ...ion atleast1..cycle sqrt
2++sqrt2***[[]];
I can't make a pen from the given path.
So I've replaced it by the trivial path `(0,0)..cycle'.
>> Pen polygon at line 51:
(0,0)
.. cycle
{endgroup}
(EXPR0)<-vacuous
{sqrt(2)}
{sqrt(2)}
{(1.41422)++(1.41422)}
{begingroup}
{endgroup}
***->expandafter(EXPR1)scantokens"**oct"(EXPR0)
(EXPR0)<-2
(EXPR1)<-vacuous
{expandafter}
{scantokens}
{oct(2)}
>> 2
! Not implemented: oct(known numeric).
<to be read again>
;
l.51 ...cle sqrt2++sqrt2***[[]];
I'm afraid I don't know how to apply that operation to that
particular type. Continue, and I'll simply return the
argument (shown above) as the result of the operation.
**->[[showall(EXPR0)*(EXPR1)]]
(EXPR0)<-vacuous
(EXPR1)<-2
{begingroup}
{showall}
{(vacuous)*(2)}
>> vacuous
>> 2
! Not implemented: (vacuous)*(known numeric).
<to be read again>
]]
<to be read again>
;
l.51 ...cle sqrt2++sqrt2***[[]];
I'm afraid I don't know how to apply that operation to that
combination of types. Continue, and I'll return the second
argument (see above) as the result of the operation.
>> 2
{endgroup}
(EXPR0)<-vacuous
{begingroup}
{interim}
{-(20.5)}
{charcode:=-20.5}
{proofing:=-20.5}
{-(2048)}
{chardp:=-2048}
{shipout}
{nullpicture}
! Enormous chardp has been reduced.
<to be read again>
]]
l.52 ...48;shipout nullpicture]]
;
Font metric dimensions must be less than 2048pt.
{endgroup}
{if}
{-(275.50002)}
{charexists(-275.50002)}
{known(unknown path p0 0p)}
{(true)>(false)}
{known(path)}
{(true)=(true)}
{true}
{randomseed}
! Missing `:=' has been inserted.
<to be read again>
charcode
l.53 ... p~: randomseed charcode
; fi
Always say `randomseed:=<numeric expression>'.
{fi}
{randomseed}
>> "goof"
! Unknown value will be ignored.
<to be read again>
;
l.54 randomseed:="goof";
a[($,18++1+-+18),(2,3)]=b[(3,2),(1,$);
Your expression was too random for me to handle,
so I won't change the random seed just now.
{(18)++(1)}
{(18.02776)+-+(18)}
{((2,3))-((-1,1))}
{(a)*((3,2))}
{((-1,1))+((3a,2a))}
! Missing `]' has been inserted.
<to be read again>
;
l.54 ...8),(2,3)]=b[(3,2),(1,$);
I've scanned an expression of the form `a[b,c',
so a right bracket should have come next.
I shall pretend that one was there.
{((1,-1))-((3,2))}
{(b)*((-2,-3))}
{((3,2))+((-2b,-3b))}
{((3a-1,2a+1))=((-2b+3,-3b+2))}
## b=-0.66667a+0.33333
## a=2
#### b=-1
{show}
{(↑)+(1)}
{(~)+(2)}
{-(1)}
{((↑+1,~+2))slanted(-1)}
{-(2)}
{((linearform,~+2))yscaled(-2)}
{-((3,4))}
{((linearform,-2~-4))zscaled((-3,-4))}
>> (-3↑-5~-13,-4↑+10~+16)
{((xpart pp,ypart pp,xxpart pp,xypart pp,yxpart pp,yypart pp))xscaled(9)
}
{((8,1,5,-5,-5,5))transformed((9xpart pp,ypart pp,9xxpart pp,9xypart pp,
yxpart pp,yypart pp))}
>> (9xypart pp+72xxpart pp+9xpart pp,yypart pp+8yxpart pp+ypart pp,-45xy
part pp+45xxpart pp,45xypart pp-45xxpart pp,-5yypart pp+5yxpart pp,5yypa
rt pp-5yxpart pp)
{((xpart pp,ypart pp,xxpart pp,xypart pp,yxpart pp,yypart pp))shifted((1
,2))}
{((8,1,5,-5,-5,5))transformed((8,1,5,-5,-5,5))}
{((xpart pp+1,ypart pp+2,xxpart pp,xypart pp,yxpart pp,yypart pp))transf
ormed((43,-34,50,-50,-50,50))}
>> (-50ypart pp+50xpart pp-7,50ypart pp-50xpart pp+16,-50yxpart pp+50xxp
art pp,-50yypart pp+50xypart pp,50yxpart pp-50xxpart pp,50yypart pp-50xy
part pp)
{(2)-(1)}
{(_0)*(1)}
{(1)+(_0)}
{(4)-(3)}
{(_0+1)*(1)}
{(3)+(_0+1)}
>> _0+4
{show}
{normaldeviate}
{-(-2048)}
{uniformdeviate(2048)}
{angle((-0.41438,761.67789))}
{cosd(90.03117)}
{(200)*(-0.00055)}
{mexp(-0.10986)}
{sqrt(0.99957)}
{mlog(0.99979)}
{sind(-0.05469)}
{floor(-0.00096)}
>> -1
{string}
{(unknown string s2)=(unknown string s4)}
{(unknown string s1)=(unknown string s2)}
{(unknown string s3)=(unknown string s5)}
{(unknown string s2)=(unknown string s4)}
! Redundant equation.
<to be read again>
;
l.58 ... s1=s2=s4; s3=s5; s1=s2;
if s1<=s4<>(s1<>s3):show[[ch...
I already knew that this equation was true.
But perhaps no harm has been done; let's continue.
{if}
{(unknown string s2)<=(unknown string s1)}
{(unknown string s2)<>(unknown string s5)}
>> unknown string s2
>> unknown string s5
! Unknown relation will be considered false.
<to be read again>
)
l.58 ...=s2; if s1<=s4<>(s1<>s3)
:show[[char34=s2:=s3]]fi;
The quantities shown above have not been equated.
{(true)<>(false)}
{true}
{show}
{begingroup}
{char(34)}
{s2:=unknown string s5}
{(""")=(unknown string s2)}
{endgroup}
{fi}
>> vacuous
{(0.1)point(path)}
{begingroup}
{pencircle}
Pen polygon at line 59 (newly created):
(0.5,0)
.. (0,0.5)
.. (-0.5,0)
.. (0,-0.5)
.. cycle
{endgroup}
{((3.24413,0.64801))penoffset(pen)}
{((0,-0.5))rotated(540)}
{((0,0.5))/(0.33333)}
{-(1.5)}
! Paths don't touch; `&' will be changed to `..'.
<to be read again>
)
l.60 ...tcontrol-1.5of(p~&cycle)
-precontrol1/2of p~(p~)=s1:=s...
When you join paths `p&q', the ending point of p
must be exactly equal to the starting point of q.
So I'm going to pretend that you said `p..q' instead.
Path at line 60, before choices:
(0,0)..controls (15,4) and (-15,-12)
..(4,0)
..cycle
Path at line 60, after choices:
(0,0)..controls (15,4) and (-15,-12)
..(4,0)..controls (17.52783,8.54388) and (-15.45978,-4.12262)
..cycle
{(-1.5)postcontrol(path)}
{(0.5)precontrol(path)}
{((-2.75,-5))-((3.75,-1))}
! Missing `of' has been inserted for directiontime.
<to be read again>
(
l.60 ...cle)-precontrol1/2of p~(
p~)=s1:=s4:=s4;
I've got the first argument; will look now for the other.
{((-6.5,-4))directiontime(path)}
{decimal(0.5)}
{((0,1.50003))substring("0.5")}
{s4:=unknown string s1}
{s1:=unknown string s4}
{("0.")=(unknown string s1)}
{path}
{length(" ")}
! Missing `,' has been inserted.
<to be read again>
}
l.61 ...p~[]; p~1=p2{length" "}
&cycle; p~1=p2=p~0; p2..contr...
I've got the x coordinate of a path direction;
will look for the y coordinate next.
! An expression can't begin with `}'.
<inserted text>
0
<to be read again>
}
l.61 ...p~[]; p~1=p2{length" "}
&cycle; p~1=p2=p~0; p2..contr...
I'm afraid I need some sort of value in order to continue,
so I've tentatively inserted `0'. You may want to
delete this zero and insert something else;
see Chapter xx of The METAFONTbook for an example.
Path at line 61, before choices:
(5,-5){4096,0}
..{4096,0}cycle
Path at line 61, after choices:
(5,-5)..controls (5,-5) and (5,-5)
..cycle
{(unknown path p~1)=(path)}
{((5,-5))=(unknown path p~0)}
{(path)=(path)}
! Redundant or inconsistent equation.
<to be read again>
;
l.61 ..." "}&cycle; p~1=p2=p~0;
p2..controls-p2..cycle=p~2;(p7
An equation between already-known quantities can't help.
But don't worry; continue and I'll just ignore it.
{-((5,-5))}
Path at line 61, before choices:
(5,-5)..controls (-5,5) and (-5,5)
..cycle
Path at line 61, after choices:
(5,-5)..controls (-5,5) and (-5,5)
..cycle
{(path)=(unknown path p~2)}
{length(path)}
Path at line 62, before choices:
(3,6)..tension 1.2
..(5,-5)..controls (5,-5) and (5,-5)
..(5,-5)
..(5,-5)..controls (-5,5) and (-5,5)
..(5,-5){0,4096}..tension 1 and atleast1
..cycle
Path at line 62, after choices:
(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
..(5,-5)..controls (5,-5) and (5,-5)
..(5,-5)..controls (5,-5) and (5,-5)
..(5,-5)..controls (-5,5) and (-5,5)
..(5,-5)..controls (5,0.02791) and (5,6.39226)
..cycle
>> x
! Improper tension has been set to 1.
<to be read again>
..
l.63 x..
{curl1}-p7{curl hex "IsBad"}..tension.75and.74999..p...
The expression above should have been a number > 3/4.
{-((3,6))}
{hex("IsBad")}
>> "IsBad"
! String contains illegal digits.
<to be read again>
}
l.63 ...l1}-p7{curl hex "IsBad"}
..tension.75and.74999..p2{0,1...
I zeroed out characters that weren't hex digits.
>> 0.74998
! Improper tension has been set to 1.
<to be read again>
..
l.63 ...}..tension.75and.74999..
p2{0,1}&p2{_,'}..cycle:=p
The expression above should have been a number > 3/4.
>> _
! Undefined x coordinate has been replaced by 0.
<to be read again>
,
l.63 ...and.74999..p2{0,1}&p2{_,
'}..cycle:=p
I need a `known' x value for this part of the path.
The value I found (see above) was no good;
so I'll try to keep going by using zero instead.
>> (xpart ',ypart ')
! Undefined y coordinate has been replaced by 0.
<to be read again>
}
l.63 ...d.74999..p2{0,1}&p2{_,'}
..cycle:=p
I need a `known' y value for this part of the path.
The value I found (see above) was no good;
so I'll try to keep going by using zero instead.
Path at line 63, before choices:
(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
..(5,-5)..controls (5,-5) and (5,-5)
..(5,-5)..controls (5,-5) and (5,-5)
..(5,-5)..controls (-5,5) and (-5,5)
..(5,-5)..controls (5,0.02791) and (5,6.39226)
..(3,6)
..{curl 1}(-3,-6){curl 2989}..tension 0.75 and 1
..{0,4096}(5,-5){curl 1}
..cycle
Path at line 63, after choices:
(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
..(5,-5)..controls (5,-5) and (5,-5)
..(5,-5)..controls (5,-5) and (5,-5)
..(5,-5)..controls (-5,5) and (-5,5)
..(5,-5)..controls (5,0.02791) and (5,6.39226)
..(3,6)..controls (-2.44821,4.93144) and (-5.4141,-1.00029)
..(-3,-6)..controls (-3.70045,-12.19485) and (5,-11.61679)
..(5,-5)..controls (12.45406,-3.75087) and (10.41669,7.45464)
..cycle
>> path
! Improper `:=' will be changed to `='.
l.63 ...p2{0,1}&p2{_,'}..cycle:=
p
I didn't find a variable name at the left of the `:=',
so I'm going to pretend that you said `=' instead.
{(path)=(unknown path p~4)}
{-(9)}
{((3.5001,7.00002))subpath(path)}
{((-9,9))subpath(path)}
{(path)=(unknown path p~6)}
{showall}
>> Path at line 65:
(-2.5,2.5)..controls (-2.49893,2.49893) and (0.00107,-0.00107)
..(5,-5)..controls (5,0.02791) and (5,6.39226)
..(3,6)..controls (-2.44821,4.93144) and (-5.4141,-1.00029)
..(-3,-6)..controls (-3.70045,-12.19485) and (5,-11.61679)
..(5,-5)..controls (5.0001,-4.99998) and (5.00021,-4.99997)
..(5.00032,-4.99995)
{((1,2))directiontime(path)}
>> 1
{-(1.00002)}
{((1,-1.00002))directiontime(path)}
>> 3.24937
Path at line 66, before choices:
(0,0)..controls (1,1) and (0,1)
..(1,0)
Path at line 66, after choices:
(0,0)..controls (1,1) and (0,1)
..(1,0)
{(unknown path p~3)=(path)}
{show}
Path at line 66, before choices:
(5,-5){-2896.30943,-2896.30934}
..{1831.78674,3663.57385}cycle
Path at line 66, after choices:
(5,-5)..controls (5,-5) and (5,-5)
..cycle
>> path
{((0.31416,1))subpath(path)}
{((1,1))directiontime(path)}
{(1)-(0.31416)}
{(0.27097)*(0.68584)}
{(0.31416)+(0.18584)}
>> 0.5
{((0,0.25))subpath(path)}
{((0.25,1))subpath(path)}
Path at line 68, before choices:
(0,0)..controls (0.25,0.25) and (0.375,0.4375)
..(0.4375,0.5625)..controls (0.625,0.9375) and (0.25,0.75)
..(1,0)
Path at line 68, after choices:
(0,0)..controls (0.25,0.25) and (0.375,0.4375)
..(0.4375,0.5625)..controls (0.625,0.9375) and (0.25,0.75)
..(1,0)
! Missing `endtext' has been inserted.
<to be read again>
;
l.68 ...~3)shifted begintext1,0;
I found no right delimiter to match a left one. So I've
put one in, behind the scenes; this may fix the problem.
{(path)shifted((1,0))}
{(unknown path p~5)=(path)}
{(2/3)*((xpart ',ypart '))}
{((0.66667xpart ',0.66667ypart '))zscaled((xpart ',ypart '))}
>> (0,0,xpart ',-ypart ',ypart ',xpart ')
! Transform components aren't all known.
<to be read again>
{
l.69 p~3:=2/3'zscaled'{
p~3}..controls(2,2/3(3))and penoffset(...
I'm unable to apply a partially specified transformation
except to a fully known pair or transform.
Proceed, and I'll omit the transformation.
>> 0.66667xpart '
! Undefined x coordinate has been replaced by 0.
<to be read again>
{
l.69 p~3:=2/3'zscaled'{
p~3}..controls(2,2/3(3))and penoffset(...
I need a `known' x value for this part of the path.
The value I found (see above) was no good;
so I'll try to keep going by using zero instead.
>> 0.66667ypart '
! Undefined y coordinate has been replaced by 0.
<to be read again>
{
l.69 p~3:=2/3'zscaled'{
p~3}..controls(2,2/3(3))and penoffset(...
I need a `known' y value for this part of the path.
The value I found (see above) was no good;
so I'll try to keep going by using zero instead.
>> path
! Undefined coordinates have been replaced by (0,0).
<to be read again>
}
l.69 p~3:=2/3'zscaled'{p~3}
..controls(2,2/3(3))and penoffset(...
I need x and y numbers for this part of the path.
The value I found (see above) was no good;
so I'll try to keep going by using zero instead.
{(2/3)*(3)}
{(1/2)*(x)}
{((0.5x,-5))penoffset((0,1))}
>> (0.5x,-5)
>> (0,1)
! Not implemented: penoffset(unknown pair)of(pair).
<to be read again>
(
l.69 ...enoffset(1/2x,y)of(0,1)(
1,0);
I'm afraid I don't know how to apply that operation to that
combination of types. Continue, and I'll return the second
argument (see above) as the result of the operation.
! Missing `..' has been inserted.
<to be read again>
(
l.69 ...enoffset(1/2x,y)of(0,1)(
1,0);
A path join command should end with two dots.
Path at line 69, before choices:
(0,0)..controls (2,2) and (0,1)
..(1,0)
Path at line 69, after choices:
(0,0)..controls (2,2) and (0,1)
..(1,0)
{p~3:=path}
{show}
{reverse(path)}
{(path)intersectiontimes(path)}
>> (0.17227,0.28339)
{(0.17227)point(path)}
>> (0.71329,0.78188)
{(1)-(0.28339)}
{(0.71661)point(path)}
>> (0.7133,0.78189)
{show}
{(path)shifted((0.01,0))}
{(path)intersectiontimes(path)}
{xpart((1.47693,1.18973))}
{(1.47693)point(path)}
{(path)shifted((0.01,0))}
{(path)intersectiontimes(path)}
{ypart((1.47693,1.18973))}
{(1.18973)point(path)}
{((1.50499,0.71521))-((1.495,0.71521))}
>> (0.01,0)
{begingroup}
{interim}
{tracingedges:=1}
{-(1)}
{-(1.00002)}
{(-1)+-+(-1.00002)}
! Pythagorean subtraction 1+-+1.00002 has been replaced by 0.
l.73 ...es:=1; e[-1+-+ -1.00001]
=nullpicture;
Since I don't take square roots of negative numbers,
I'm zeroing this one. Proceed, with fingers crossed.
{nullpicture}
{(unknown picture e0)=(picture)}
{addto}
{(path)scaled(3)}
Path at line 74, before subdivision into octants:
(3,0)..controls (3.75,0.75) and (4.125,1.3125)
..(4.3125,1.6875)..controls (4.875,2.8125) and (3.75,2.25)
..(6,0)..controls (3.75,2.25) and (4.875,2.8125)
..(4.3125,1.6875)..controls (4.125,1.3125) and (3.75,0.75)
..cycle
Cycle spec at line 74, after subdivision:
(3,0) % beginning in the second octant
..controls (3.75,0.75) and (4.125,1.3125)
..(4.3125,1.6875) % segment 0
..controls (4.5,2.0625) and (4.5,2.25)
..(4.5,2.25) % segment 1
% entering the third octant
% entering the fourth octant
% entering the fifth octant
% entering the sixth octant
% entering the seventh octant
..controls (4.5,2.25) and (4.5,1.5)
..(6,0) % segment 1
% entering the eighth octant
% entering the first octant
% entering the second octant
% entering the third octant
..controls (4.5,1.5) and (4.5,2.25)
..(4.5,2.25) % segment 2
% entering the fourth octant
% entering the fifth octant
% entering the sixth octant
..controls (4.5,2.25) and (4.5,2.0625)
..(4.3125,1.6875) % segment 2
..controls (4.125,1.3125) and (3.75,0.75)
..(3,0) % segment 3
% entering the seventh octant
% entering the eighth octant
% entering the first octant
& cycle
Tracing edges at line 74: (weight 1)
(4,0)(4,1)(5,1)(5,3)(4,3)(4,1)(5,1)(5,0)(6,0)(6,1)(5,1)(5,3)
(4,3)(4,1)(3,1)(3,0).
{(unknown picture e1)=(unknown picture e2)}
{(picture)=(unknown picture e1)}
{cull}
{showall}
{-(4095)}
{(picture)shifted((4089,-4095))}
>> Edge structure at line 75:
row -4093: | 4093+ 4094-
row -4094: | 4093+ 4094-
row -4095: | 4092+ 4093- 4094+ 4095-
{-(4095)}
{(picture)shifted((-4095,4092))}
{-(3)}
{(picture)shifted((-3,0))}
>> Edge structure at line 75:
row 4094: -4094+ -4093- -4094+ -4093- |
row 4093: -4094+ -4093- -4094+ -4093- |
row 4092: -4095+ -4092- -4093+ -4094- |
{-(4095)}
{(picture)shifted((4089,-4095))}
! Too far to shift.
<to be read again>
]]
l.76 e2 shifted(4089,-4095)]]
;addto e1 also e2 shifted(-2,$)...
I can't shift the picture as requested---it would
make some coordinates too large or too small.
Proceed, and I'll omit the transformation.
>> Edge structure at line 76:
row 2: 4+ 5- 4+ 5- |
row 1: 4+ 5- 4+ 5- |
row 0: 3+ 6- 5+ 4- |
{endgroup}
{addto}
{-(2)}
{(picture)shifted((-2,-1))}
{-(4)}
{(picture)shifted((-4,-1))}
{e1:=picture}
{addto}
{(picture)rotated(89.999)}
! That transformation is too hard.
<to be read again>
+
l.77 ...also e1 rotated 89.999 +
e1 scaled$; showall e0;
I can apply complicated transformations to paths,
but I can only do fairly simple things to pictures. Sorry.
Proceed, and I'll omit the transformation.
{(picture)scaled(-1)}
{(picture)+(picture)}
{showall}
>> Edge structure at line 77:
row 2: 4+ 5- 4+ 5- |
row 1: 3- 0+ 1- 2+ 4+ 5- 4+ 5- | 0+ 1-
row 0: -2+ -1- -2+ -1- 2- 1+ 2- 1+ 3+ 6- 5+ 4- | -2+ -1- 0+ 0+ 1-
1-
row -1: -2+ -1- -2+ -1- 2- 1+ 2- 1+ | -1+ -1+ 0- 0- 1+ 2-
row -2: -3+ 0- -1+ -2- | -1+ 0-
{addto}
{-(3)}
{turningnumber(path)}
! Weight must be -3, -2, -1, +1, +2, or +3.
<to be read again>
withpen
l.79 withpen
pencircle xscaled(oct"180"++1) rotated angle(64...
I'll ignore the bad `with' clause and look for another.
{pencircle}
{oct("180")}
>> "180"
! String contains illegal digits.
<to be read again>
++
l.79 ...ircle xscaled(oct"180"++
1) rotated angle(64,1) shifte...
I zeroed out characters that weren't in the range 0..7.
{(64)++(1)}
{(future pen)xscaled(64.00781)}
{angle((64,1))}
{(future pen)rotated(0.89517)}
{(future pen)shifted((9,8))}
Pen polygon at line 80 (newly created):
(9,7.5)
.. (37.5,8)
.. (41,8.5)
.. (9,8.5)
.. (-19.5,8)
.. (-23,7.5)
.. cycle
Path at line 80, before choices:
(-1,-1){curl 1}
..(1,0)
..(1,1)
..(-1,0)
..{curl 1}cycle
Path at line 80, after choices:
(-1,-1)..controls (-0.18568,-1.14464) and (0.62712,-0.73824)
..(1,0)..controls (1.16457,0.32584) and (1.21637,0.71506)
..(1,1)..controls (0.46898,1.69931) and (-0.7587,1.2167)
..(-1,0)..controls (-1.06546,-0.33012) and (-1.06546,-0.66988)
..cycle
{makepen(path)}
{(future pen)xscaled(4095.49998)}
Pen polygon at line 80 (newly created):
(4095.49998,0)
.. (4095.49998,1)
.. (-4095.49998,0)
.. (-4095.49998,-1)
.. cycle
Path at line 80, before subdivision into octants:
(0,9)..controls (0,9) and (0,9)
..cycle
! Curve out of range.
<to be read again>
;
l.80 ...cycle)xscaled4095.49999;
At least one of the coordinates in the path I'm about to
digitize was really huge (potentially bigger than 4095).
So I've cut it back to the maximum size.
The results will probably be pretty wild.
Cycle spec at line 80, after subdivision:
(0,0) % beginning in the first octant
% entering the second octant
% entering the third octant
% entering the fourth octant
% entering the fifth octant
% entering the sixth octant
% entering the seventh octant
% entering the eighth octant
& cycle
Tracing edges at line 80: (weight -3)
@ Octant 1 (2 offsets), from (-4095.49998,-1) to (4095.49998,0)
@ transition line 0, from (-4095.49998,-1) to (-4095.49998,-1)
@ transition line 1, from (-4095.49998,-1) to (4095.49998,0)
@ transition line 2, from (4095.49998,0) to (4095.49998,0)
(0,-1)
@ Octant 2 (1 offset), from (4095.49998,0) to (4095.49998,1)
@ transition line 2, from (4095.49998,0) to (4095.49998,0)
@ transition line 1, from (4095.49998,0) to (4095.49998,1)
(0,0)(4095,0)
@ Octant 3 (0 offsets), from (4095.49998,1) to (4095.49998,1)
@ transition line 0, from (4095.49998,1) to (4095.49998,1)
@ Octant 4 (0 offsets), from (4095.49998,1) to (4095.49998,1)
@ transition line 1, from (4095.49998,1) to (4095.49998,1)
@ Octant 5 (2 offsets), from (4095.49998,1) to (-4095.49998,0)
@ transition line 0, from (4095.49998,1) to (4095.49998,1)
@ transition line 1, from (4095.49998,1) to (-4095.49998,0)
@ transition line 2, from (-4095.49998,0) to (-4095.49998,0)
(4095,1)(0,1)
@ Octant 6 (1 offset), from (-4095.49998,0) to (-4095.49998,-1)
@ transition line 2, from (-4095.49998,0) to (-4095.49998,0)
@ transition line 1, from (-4095.49998,0) to (-4095.49998,-1)
(0,0)(-4095,0)
@ Octant 7 (0 offsets), from (-4095.49998,-1) to (-4095.49998,-1)
@ transition line 0, from (-4095.49998,-1) to (-4095.49998,-1)
@ Octant 8 (0 offsets), from (-4095.49998,-1) to (-4095.49998,-1)
@ transition line 1, from (-4095.49998,-1) to (-4095.49998,-1)
(-4095,-1).
{showall}
>> Edge structure at line 81:
row 1: | 0+ 1-
row 0: 0--- 4095+++ -2+ -1- -2+ -1- | 0+ 1-
row -1: -4095--- 0+++ -2+ -1- -2+ -1- | -1+ 0- 1+ 2-
row -2: -3+ 0- -1+ -2- |
{totalweight(picture)}
>> -0.37476
{charcode:=5}
{chardp:=5}
{shipout}
[5]
Edge structure at line 81 (just shipped out):
row 1: | 0+ 1-
row 0: | -2+ -2+ -1- -1- 0--- 0+ 1- 4095+++
row -1: | -4095--- -2+ -2+ -1- -1- -1+ 0- 0+++ 1+ 2-
row -2: | -3+ -2- -1+ 0-
{showstats}
Memory usage 1066&169 (759 still untouched)
String usage 17&54 (519&12270 still untouched)
{addto}
{(path)yscaled(0.01666)}
Path at line 82, before subdivision into octants:
(0,0)..controls (15,0.06665) and (-15,-0.19995)
..(4,0)..controls (-15,-0.19995) and (15,0.06665)
..cycle
Cycle spec at line 82, after subdivision:
(0,0) % beginning in the first octant
..controls (1.74272,0.00775) and (2.87802,0.01099)
..(3.55333,0.01099) % segment 0
% entering the eighth octant
..controls (4.12251,0.01099) and (4.36491,0.00868)
..(4.36877,0.00482) % segment 0
% entering the seventh octant
..controls (4.3688,0.00479) and (4.36882,0.00476)
..(4.36882,0.00473) % segment 0
% entering the sixth octant
..controls (4.36882,0.0047) and (4.3688,0.00467)
..(4.36877,0.00464) % segment 0
% entering the fifth octant
..controls (4.34877,-0.01537) and (-1.88759,-0.07579)
..(-2.48894,-0.07579) % segment 0
% entering the fourth octant
..controls (-2.5191,-0.07579) and (-2.53511,-0.07562)
..(-2.53542,-0.07532) % segment 0
% entering the third octant
% entering the second octant
% entering the first octant
..controls (-2.5321,-0.072) and (-0.88672,-0.05144)
..(4,0) % segment 0
% entering the second octant
% entering the third octant
% entering the fourth octant
% entering the fifth octant
..controls (-0.88672,-0.05144) and (-2.53209,-0.07199)
..(-2.53542,-0.07532) % segment 1
% entering the sixth octant
% entering the seventh octant
% entering the eighth octant
..controls (-2.5351,-0.07564) and (-2.5191,-0.07579)
..(-2.48894,-0.07579) % segment 1
% entering the first octant
..controls (-1.88759,-0.07579) and (4.34875,-0.01538)
..(4.36877,0.00464) % segment 1
% entering the second octant
..controls (4.3688,0.00467) and (4.36882,0.0047)
..(4.36882,0.00473) % segment 1
% entering the third octant
..controls (4.36882,0.00476) and (4.3688,0.00479)
..(4.36877,0.00482) % segment 1
% entering the fourth octant
..controls (4.36491,0.00868) and (4.12251,0.01099)
..(3.55333,0.01099) % segment 1
% entering the fifth octant
..controls (2.87802,0.01099) and (1.74272,0.00775)
..(0,0) % segment 1
% entering the sixth octant
% entering the seventh octant
% entering the eighth octant
& cycle
Tracing edges at line 82: (weight 1)
(No new edges added.)
{autorounding:=2}
{nullpicture}
{e3:=picture}
{addto}
Path at line 83, before choices:
(0.5,0){curl 1}
..{curl 1}(3.5,1.5)
Path at line 83, after choices:
(0.5,0)..controls (1.5,0.5) and (2.5,1)
..(3.5,1.5)
Path at line 83, before subdivision into octants:
(0.5,0)..controls (1.5,0.5) and (2.5,1)
..(3.5,1.5)..controls (2.5,1) and (1.5,0.5)
..cycle
Cycle spec at line 83, after subdivision:
(0.5,0) % beginning in the first octant
..controls (1.5,0.5) and (2.5,1)
..(3.5,1.5) % segment 0
% entering the second octant
% entering the third octant
% entering the fourth octant
% entering the fifth octant
..controls (2.5,1) and (1.5,0.5)
..(0.5,0) % segment 1
% entering the sixth octant
% entering the seventh octant
% entering the eighth octant
& cycle
Tracing edges at line 83: (weight 2)
(2,0)(2,1)(4,1)(4,2)(4,1)(2,1)(2,0).
{tracingspecs:=0}
Path at line 84, before choices:
(1,1)
..cycle
Path at line 84, after choices:
(1,1)..controls (1,1) and (1,1)
..cycle
{makepen(path)}
{(future pen)yscaled(1.5)}
Pen polygon at line 84 (newly created):
(1,1.5)
.. cycle
{q:=pen}
{((-1,yy))rotated((8,1,5,-5,-5,5))}
>> (8,1,5,-5,-5,5)
! Improper transformation argument.
<to be read again>
{
l.85 p~8=(($,yy)rotated p{
0,1}..{0,$}(1,0){0,$}..cycle)scaled...
The expression shown above has the wrong type,
so I can't transform anything using it.
Proceed, and I'll omit the transformation.
>> yy
! Undefined y coordinate has been replaced by 0.
<to be read again>
{
l.85 p~8=(($,yy)rotated p{
0,1}..{0,$}(1,0){0,$}..cycle)scaled...
I need a `known' y value for this part of the path.
The value I found (see above) was no good;
so I'll try to keep going by using zero instead.
Path at line 85, before choices:
(-1,0){0,4096}
..{0,-4096}(1,0){0,-4096}
..{0,4096}cycle
Path at line 85, after choices:
(-1,0)..controls (-1,1.33333) and (1,1.33333)
..(1,0)..controls (1,-1.33333) and (-1,-1.33333)
..cycle
{(path)scaled(2)}
{(path)shifted((1000.49,9))}
{(unknown path p~8)=(path)}
{turningcheck:=1}
{addto}
>> (8,1,5,-5,-5,5)
! Improper type.
<to be read again>
withpen
l.86 ...n q withweight p withpen
cycle p;
Next time say `withweight <known numeric expression>';
I'll ignore the bad `with' clause and look for another.
{cycle((8,1,5,-5,-5,5))}
>> false
! Improper type.
<to be read again>
;
l.86 ...eight p withpen cycle p;
Next time say `withpen <known pen expression>';
I'll ignore the bad `with' clause and look for another.
Tracing edges at line 86: (weight 1)
@ Octant 2 (0 offsets), from (999.49,10.5) to (1000.03773,11.92714)
@ retrograde line from (999.49,10.5) to (999.49,10.5)
@ transition line 1, from (1000.03773,11.92714) to (1000.03773,11.92714)
(1000,11)
@ retrograde line from (1000.03773,11.92714) to (1000.03773,11.92714)
@ Octant 1 (0 offsets), from (1000.03773,11.92714) to (1001.49,12.49998)
@@ with autorounding: from (1000.23244,11.73244) to (1001.49,12)
@ retrograde line from (1000.23244,11.73244) to (1000.23244,11.73244)
@ transition line 0, from (1000.23244,11.73244) to (1000.23244,11.73244)
@ retrograde line from (1001.49,12) to (1001.49,12)
@ Octant 8 (0 offsets), from (1001.49,12.49998) to (1002.94228,11.92714)
@@ with autorounding: from (1001.49,12) to (1002.75757,11.74243)
@ retrograde line from (1001.49,12) to (1001.49,12)
@ transition line 1, from (1002.75757,11.74243) to (1002.75757,11.74243)
@ retrograde line from (1002.75757,11.74243) to (1002.75757,11.74243)
@ Octant 7 (0 offsets), from (1002.94228,11.92714) to (1003.49,10.5)
@@ with autorounding: from (1002.75757,11.74243) to (1003,10.5)
@ retrograde line from (1002.75757,11.74243) to (1002.75757,11.74243)
@ transition line 0, from (1002.75757,11.74243) to (1002.75757,11.74243)
(1000,12)(1003,12)
@ retrograde line from (1003,10.5) to (1003,10.5)
@ Octant 6 (0 offsets), from (1003.49,10.5) to (1002.94228,9.07286)
@@ with autorounding: from (1003,10.5) to (1002.75757,9.25757)
@ retrograde line from (1003,10.5) to (1003,10.5)
@ transition line 1, from (1002.75757,9.25757) to (1002.75757,9.25757)
@ retrograde line from (1002.75757,9.25757) to (1002.75757,9.25757)
@ Octant 5 (0 offsets), from (1002.94228,9.07286) to (1001.49,8.50002)
@@ with autorounding: from (1002.75757,9.25757) to (1001.49,9)
@ retrograde line from (1002.75757,9.25757) to (1002.75757,9.25757)
@ transition line 0, from (1002.75757,9.25757) to (1002.75757,9.25757)
@ retrograde line from (1001.49,9) to (1001.49,9)
@ Octant 4 (0 offsets), from (1001.49,8.50002) to (1000.03773,9.07286)
@@ with autorounding: from (1001.49,9) to (1000.23244,9.26756)
@ retrograde line from (1001.49,9) to (1001.49,9)
@ transition line 1, from (1000.23244,9.26756) to (1000.23244,9.26756)
@ retrograde line from (1000.23244,9.26756) to (1000.23244,9.26756)
@ Octant 3 (0 offsets), from (1000.03773,9.07286) to (999.49,10.5)
@ retrograde line from (1000.03773,9.07286) to (1000.03773,9.07286)
@ transition line 0, from (1000.03773,9.07286) to (1000.03773,9.07286)
(1003,9)(1000,9)(1000,10)(999,10)
@ retrograde line from (999.49,10.5) to (999.49,10.5)
(999,11).
Tracing edges at line 86: (weight 1)
@ Octant 7 (0 offsets), from (999.49,10.5) to (1000.03773,9.07286)
@ transition line 0, from (999.49,10.5) to (999.49,10.5)
(999,11)(999,10)(1000,10)
@ Octant 8 (0 offsets), from (1000.03773,9.07286) to (1001.49,8.50002)
@@ with autorounding: from (1000.23244,9.26756) to (1001.49,9)
@ transition line 1, from (1001.49,9) to (1001.49,9)
@ Octant 1 (0 offsets), from (1001.49,8.50002) to (1002.94228,9.07286)
@@ with autorounding: from (1001.49,9) to (1002.75757,9.25757)
@ transition line 0, from (1001.49,9) to (1001.49,9)
@ Octant 2 (0 offsets), from (1002.94228,9.07286) to (1003.49,10.5)
@@ with autorounding: from (1002.75757,9.25757) to (1003,10.5)
@ transition line 1, from (1003,10.5) to (1003,10.5)
(1000,9)(1003,9)
@ Octant 3 (0 offsets), from (1003.49,10.5) to (1002.94228,11.92714)
@@ with autorounding: from (1003,10.5) to (1002.75757,11.74243)
@ transition line 0, from (1003,10.5) to (1003,10.5)
@ Octant 4 (0 offsets), from (1002.94228,11.92714) to (1001.49,12.49998)
@@ with autorounding: from (1002.75757,11.74243) to (1001.49,12)
@ transition line 1, from (1001.49,12) to (1001.49,12)
@ Octant 5 (0 offsets), from (1001.49,12.49998) to (1000.03773,11.92714)
@@ with autorounding: from (1001.49,12) to (1000.23244,11.73244)
@ transition line 0, from (1001.49,12) to (1001.49,12)
@ Octant 6 (0 offsets), from (1000.03773,11.92714) to (999.49,10.5)
@ transition line 1, from (999.49,10.5) to (999.49,10.5)
(1003,12)(1000,12)(1000,11).
{begingroup}
{interim}
{(xx)=(0.1)}
## xx=0.1
{autorounding:=0.1}
{addto}
{-(2)}
! Backwards path (turning number is negative).
<to be read again>
]]
l.87 ...withpen q withweight-2]]
;
The path doesn't have a counterclockwise orientation,
so I'll probably have trouble drawing it.
Tracing edges at line 87: (weight -2)
@ Octant 2 (0 offsets), from (999.49,10.5) to (1000.03773,11.92714)
@@ with autorounding: from (999,10.5) to (1000.03773,11.92714)
@ retrograde line from (999,10.5) to (999,10.5)
@ transition line 1, from (1000.03773,11.92714) to (1000.03773,11.92714)
(1000,11)
@ retrograde line from (1000.03773,11.92714) to (1000.03773,11.92714)
@ Octant 1 (0 offsets), from (1000.03773,11.92714) to (1001.49,12.49998)
@@ with autorounding: from (1000.03773,11.92714) to (1001.49,12)
@ retrograde line from (1000.03773,11.92714) to (1000.03773,11.92714)
@ transition line 0, from (1000.03773,11.92714) to (1000.03773,11.92714)
@ retrograde line from (1001.49,12) to (1001.49,12)
@ Octant 8 (0 offsets), from (1001.49,12.49998) to (1002.94228,11.92714)
@@ with autorounding: from (1001.49,12) to (1002.94228,11.92714)
@ retrograde line from (1001.49,12) to (1001.49,12)
@ transition line 1, from (1002.94228,11.92714) to (1002.94228,11.92714)
@ retrograde line from (1002.94228,11.92714) to (1002.94228,11.92714)
@ Octant 7 (0 offsets), from (1002.94228,11.92714) to (1003.49,10.5)
@@ with autorounding: from (1002.94228,11.92714) to (1003,10.5)
@ retrograde line from (1002.94228,11.92714) to (1002.94228,11.92714)
@ transition line 0, from (1002.94228,11.92714) to (1002.94228,11.92714)
(1000,12)(1003,12)
@ retrograde line from (1003,10.5) to (1003,10.5)
@ Octant 6 (0 offsets), from (1003.49,10.5) to (1002.94228,9.07286)
@@ with autorounding: from (1003,10.5) to (1002.94228,9.07286)
@ retrograde line from (1003,10.5) to (1003,10.5)
@ transition line 1, from (1002.94228,9.07286) to (1002.94228,9.07286)
@ retrograde line from (1002.94228,9.07286) to (1002.94228,9.07286)
@ Octant 5 (0 offsets), from (1002.94228,9.07286) to (1001.49,8.50002)
@@ with autorounding: from (1002.94228,9.07286) to (1001.49,9)
@ retrograde line from (1002.94228,9.07286) to (1002.94228,9.07286)
@ transition line 0, from (1002.94228,9.07286) to (1002.94228,9.07286)
@ retrograde line from (1001.49,9) to (1001.49,9)
@ Octant 4 (0 offsets), from (1001.49,8.50002) to (1000.03773,9.07286)
@@ with autorounding: from (1001.49,9) to (1000.03773,9.07286)
@ retrograde line from (1001.49,9) to (1001.49,9)
@ transition line 1, from (1000.03773,9.07286) to (1000.03773,9.07286)
@ retrograde line from (1000.03773,9.07286) to (1000.03773,9.07286)
@ Octant 3 (0 offsets), from (1000.03773,9.07286) to (999.49,10.5)
@@ with autorounding: from (1000.03773,9.07286) to (999,10.5)
@ retrograde line from (1000.03773,9.07286) to (1000.03773,9.07286)
@ transition line 0, from (1000.03773,9.07286) to (1000.03773,9.07286)
(1003,9)(1000,9)(1000,10)(999,10)
@ retrograde line from (999,10.5) to (999,10.5)
(999,11).
{endgroup}
{charfam:=14.5}
{chardp:=14.5}
{chardx:=14.5}
{shipout}
{-(picture)}
{(picture)-(picture)}
{-(picture)}
{turningnumber(path)}
{(6)*(-1)}
{(picture)shifted((0,-6))}
{(picture)+(picture)}
[5.15]
Edge structure at line 88 (just shipped out):
row 11: | 1000- 1000+ 1000++ 1003-- 1003- 1003+
row 10: | 999- 999+ 999++ 1003-- 1003- 1003+
row 9: | 1000- 1000+ 1000++ 1003-- 1003- 1003+
row 8: |
row 7: |
row 6: |
row 5: | 1000- 1000+ 1000++ 1003-- 1003- 1003+
row 4: | 999- 999+ 999++ 1003-- 1003- 1003+
row 3: | 1000- 1000+ 1000++ 1003-- 1003- 1003+
row 2: | 4+ 4+ 4+ 4+ 5- 5- 5- 5-
row 1: | 0+ 0+ 1- 1- 2+ 3- 4+ 4+ 4+ 4+ 5- 5- 5- 5-
row 0: | -2+ -2+ -2+ -1- -1- -1- 0+ 0+ 1- 1- 1+ 1+ 2- 2- 3+ 3+ 4-
4- 5+ 5+ 6- 6-
row -1: | -2+ -2+ -1- -1- -1+ -1+ 0- 0- 1+ 1+ 1+ 2- 2- 2-
row -2: | -3+ -2- -1+ -1+ 0- 0-
row -3: |
row -4: | 4+ 4+ 5- 5-
row -5: | 4+ 4+ 5- 5-
row -6: | 3+ 4- 5+ 6-
Path at line 89, before choices:
(0,0){curl 1}
..(1,0.5)
..(5,1.5)
..(7,2.5)
..(12,3.5)
..{curl 1}(13,4)
Path at line 89, after choices:
(0,0)..controls (0.3153,0.20053) and (0.6504,0.36807)
..(1,0.5)..controls (2.29114,0.98723) and (3.72412,0.97192)
..(5,1.5)..controls (5.68967,1.78545) and (6.30771,2.22081)
..(7,2.5)..controls (8.58867,3.1407) and (10.3946,2.90645)
..(12,3.5)..controls (12.3506,3.62962) and (12.68594,3.7973)
..(13,4)
{(unknown path p~9)=(path)}
{addto}
Tracing edges at line 89: (weight 1)
(1,0)(1,1)(5,1)(5,2)(7,2)(7,3)(12,3)(12,4)(12,3)(7,3)(7,2)(5,2)
(5,1)(1,1)(1,0).
{smoothing:=1}
{addto}
Tracing edges at line 90: (weight 1)
(1,0)(1,1)(4,1)(4,2)(8,2)(8,3)(12,3)(12,4)(12,3)(8,3)(8,2)(4,2)
(4,1)(1,1)(1,0).
{addto}
{-(4095)}
Path at line 91, before choices:
(-4095,0){curl 1}..tension 0.75 and 999
..{curl 1}(0,2)
Path at line 91, after choices:
(-4095,0)..controls (-2275,0.88889) and (-1.36636,1.99933)
..(0,2)
Tracing edges at line 91: (weight 1)
(-3071,0)(-3071,1)(-1024,1)(-1024,2)(-1024,1)(-3071,1)(-3071,0).
{showall}
{-(90)}
{(picture)rotated(-90)}
>> Edge structure at line 91:
{(picture)+(picture)}
{(90)*(-1)}
{(picture)rotated(-90)}
{(picture)rotated(90)}
>> Edge structure at line 91:
row 2: | 4+++ 4+ 5--- 5-
row 1: | 0+++ 0+ 1--- 1- 2++ 3-- 4+++ 4+ 5--- 5-
row 0: | -2+++ -2+++ -1--- -1--- 0+++ 0+ 2--- 2- 3++ 4-- 5++ 6--
row -1: | -2+++ -2+ 0--- 0- 1+++ 1+++ 2--- 2---
row -2: | -3++ -2-- -1+++ -1+ 0--- 0-
{if}
{if}
{elseif}
! Missing `:' has been inserted.
<inserted text>
:
<to be read again>
elseif
l.92 if "a" if "ab">"b" elseif
path reverse (3,4): >="aa":foo...
{("ab")>("b")}
{false}
{reverse((3,4))}
{path(path)}
{true}
{("a")>=("aa")}
{false}
{if}
{((xpart ',ypart '))-((1,yy))}
{((xpart '-1,linearform))<((xpart ',ypart '))}
{true}
{fi}
{else}
! Extra else.
l.93 ... if '-(1,yy)<': :fi else
def dup text t=[[t;save endd...
I'm ignoring this; it doesn't match any if.
{def}
{def}
{def}
||<tertiary>->show.substring(EXPR0)of("a"
(EXPR0)<-(2,-1)
{show}
{("a")&("bc")}
{((2,-1))substring("abc")}
>> "ba"
{tertiarydef}
{def}
{showall}
{((23.3,4.5))subpath(path)}
Path at line 100, before choices:
(0,0){curl 2}
..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
..(12.51372,3.72261){curl 3}
..{curl 4}(-1,-1){curl 4}
..{curl 2}cycle
Path at line 100, after choices:
(0,0)..controls (-40.15552,-36.7088) and (58.71173,33.50317)
..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
..(12.51372,3.72261)..controls (8.00914,2.1484) and (3.50458,0.5742)
..(-1,-1)..controls (-0.66667,-0.66667) and (-0.33333,-0.33333)
..cycle
>> Path at line 100:
(0,0)..controls (-40.15552,-36.7088) and (58.71173,33.50317)
..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
..(12.51372,3.72261)..controls (8.00914,2.1484) and (3.50458,0.5742)
..(-1,-1)..controls (-0.66667,-0.66667) and (-0.33333,-0.33333)
..cycle
{numspecial}
{(2)+(3)}
++->[[dup.showtoken(EXPR0);]];def.x.expr.z.of(EXPR1)=z.enddef;texts(x=((
EXPR1)+0)(EXPR1)+(EXPR1))("xx",foo((EXPR0)))]]
(EXPR0)<-path
(EXPR1)<-5
{begingroup}
dup<text>->[[(TEXT0);save
(TEXT0)<-showtoken(path)
{begingroup}
{showtoken}
> (path)
{save}
{endgroup}
{def}
! Missing symbolic token inserted.
<inserted text>
INACCESSIBLE
++->...]];def.x.expr.z.of(EXPR1)
=z.enddef;texts(x=((EXPR1)+0)...
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
Sorry: You can't redefine a number, string, or expr.
I've inserted an inaccessible symbol so that your
definition will be completed without mixing me up too badly.
texts(TEXT0)(TEXT1)->for.n:=for.n"yy":n,length.if.false:endfor(TEXT1),(T
EXT0):if.string.n:forsuffixes.n=foo1,[foo(n)],':show(TEXT0),(TEXT1)| :=n
;exitif.not('<='+(0,yy))endfor.for.m=alpha.step-1.1 3$:+m.endfor.fi.endf
or
(TEXT0)<-x=((5)+0)(5)+(5)
(TEXT1)<-"xx",foo((path))
{for}
{for}
! Missing `=' has been inserted.
<to be read again>
"yy"
texts->for.n:=for.n"yy"
:n,length.if.false:endfor(TEXT1),(TEXT...
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
The next thing in this loop should have been `=' or `:='.
But don't worry; I'll pretend that an equals sign
was present, and I'll look for the values next.
{loop value="yy"}
{if}
{false}
{false}
! Incomplete if; all text was ignored after line 100.
<inserted text>
fi
<to be read again>
ENDFOR
<for("yy")> ....if.false: ENDFOR
texts->...length.if.false:endfor
(TEXT1),(TEXT0):if.string.n:f...
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
A forbidden `outer' token occurred in skipped text.
This kind of error happens when you say `if...' and forget
the matching `fi'. I've inserted a `fi'; this might work.
{[repeat the loop]}
{length("xx")}
foo(TEXT2)->begingroup(TEXT2)endgroup
(SUFFIX0)<-
(SUFFIX1)<-foo
(TEXT2)<-(path)
{begingroup}
{endgroup}
x<expr>of<primary>->(EXPR0)
{(5)+(0)}
(EXPR0)<-5
! Missing `of' has been inserted for x.
<to be read again>
(5)
<argument> x=((5)+0)(5)
+(5)
texts->...:endfor(TEXT1),(TEXT0)
:if.string.n:forsuffixes.n=fo...
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
I've got the first argument; will look now for the other.
(EXPR1)<-5
{(5)+(5)}
{loop value="yy"}
{if}
{string("yy")}
{true}
{forsuffixes}
! Missing symbolic token inserted.
<inserted text>
INACCESSIBLE
<for("yy")> ...orsuffixes(EXPR0)
=foo1,[foo((EXPR0))],':show.x...
texts->...3$:+m.endfor.fi.endfor
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
Sorry: You can't redefine a number, string, or expr.
I've inserted an inaccessible symbol so that your
definition will be completed without mixing me up too badly.
foo(TEXT2)->begingroup(TEXT2)endgroup
(SUFFIX0)<-
(SUFFIX1)<-foo
(TEXT2)<-("yy")
{begingroup}
{endgroup}
>> "yy"
! Improper subscript has been replaced by zero.
<for("yy")> ...o1,[foo((EXPR0))]
,':show.x=((5)+0)(5)+(5),"xx"...
texts->...3$:+m.endfor.fi.endfor
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
A bracketed subscript must have a known numeric value;
unfortunately, what I found was the value that appears just
above this error message. So I'll try a zero subscript.
{loop value=foo1}
{show}
x<expr>of<primary>->(EXPR0)
{(5)+(0)}
(EXPR0)<-5
! Missing `of' has been inserted for x.
<to be read again>
(5)
<for(foo1)> show.x=((5)+0)(5)
+(5),"xx",foo((path))| :=("yy");exiti...
<for("yy")> ...<='+(0,yy))endfor
.for.m=alpha.step-1.1 3$:+m.e...
texts->...3$:+m.endfor.fi.endfor
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
I've got the first argument; will look now for the other.
(EXPR1)<-5
{(5)+(5)}
>> 10
>> "xx"
foo(TEXT2)->begingroup(TEXT2)endgroup
(SUFFIX0)<-
(SUFFIX1)<-foo
(TEXT2)<-(path)
{begingroup}
{endgroup}
|<suffix>->,(SUFFIX0)
(SUFFIX0)<-
>> path
>> "yy"
{exitif}
{((xpart ',ypart '))+((0,yy))}
{((xpart ',ypart '))<=((xpart ',linearform))}
>> -yy
! Unknown relation will be considered false.
<to be read again>
)
<for(foo1)> ...xitif.not('<='+(0,yy))
ENDFOR
<for("yy")> ...<='+(0,yy))endfor
.for.m=alpha.step-1.1 3$:+m.e...
texts->...3$:+m.endfor.fi.endfor
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
Oh dear. I can't decide if the expression above is positive,
negative, or zero. So this comparison test won't be `true'.
{[repeat the loop]}
{loop value=0}
{not(false)}
{true}
{for}
>> 0.5p3~
! Improper initial value has been replaced by 0.
<to be read again>
step
<for("yy")> ....for.m=alpha.step
-1.1 3$:+m.endfor.fi ENDFOR
texts->...3$:+m.endfor.fi.endfor
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
When you say `for x=a step b until c',
the initial value `a' and the step size `b'
and the final value `c' must have known numeric values.
I'm zeroing this one. Proceed, with fingers crossed.
{-(1.1)}
! Missing `until' has been inserted.
<to be read again>
3
<for("yy")> ...=alpha.step-1.1 3
$:+m.endfor.fi ENDFOR
texts->...3$:+m.endfor.fi.endfor
++->...XPR1))("xx",foo((EXPR0)))
]]
<to be read again>
;
l.100 ...cle;numspecial p~++2+3;
[[
I assume you meant to say `until' after `step'.
So I'll look for the final value and colon next.
{(3)*(-1)}
{loop value=0}
{[repeat the loop]}
{loop value=-1.1}
{+(0)}
{[repeat the loop]}
{loop value=-2.20001}
{(0)+(-1.1)}
{[repeat the loop]}
{fi}
{[repeat the loop]}
{loop value=2}
{if}
{string(2)}
{false}
{[repeat the loop]}
{loop value=path}
{if}
{string(path)}
{false}
{[repeat the loop]}
{loop value=10}
{if}
{string(10)}
{false}
{[repeat the loop]}
{(-1.1)+(-2.20001)}
{endgroup}
{begingroup}
{let}
{save}
{def}
{def}
texts->input
{input}
(trap.mf
if->endinput?
{endinput}
{if}
{known(0)}
{not(true)}
{false}
)
! Incomplete if; all text was ignored after line 2.
<inserted text>
fi
l.101 ...input enddef;texts trap
]];
The file ended while I was skipping conditional text.
This kind of error happens when you say `if...' and forget
the matching `fi'. I've inserted a `fi'; this might work.
{endgroup}
dup<text>->[[(TEXT0);save
Runaway text?
[[def.texts.secondary.x=primarydef.y++y=x@y.enddef;showtoken ETC.
! Forbidden token found while scanning a text argument.
<inserted text>
endgroup
<to be read again>
\
l.102 ...showtoken++;x enddef]]\
;
It seems that a right delimiter was left out,
causing me to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
(TEXT0)<-[[def.texts.secondary.x=primarydef.y++y=x@y.enddef;showtoken++;
x.enddef]]
{begingroup}
{begingroup}
{def}
{endgroup}
{save}
! Missing symbolic token inserted.
<inserted text>
INACCESSIBLE
<to be read again>
\
l.102 ...showtoken++;x enddef]]\
;
Sorry: You can't redefine my error-recovery tokens.
I've inserted an inaccessible symbol so that your
definition will be completed without mixing me up too badly.
{\}
{proofing:=1}
texts<secondary>->primarydef.y++y=(EXPR0)@y.enddef;showtoken++;(EXPR0)
(EXPR0)<-"a"
{primarydef}
{showtoken}
> ++=primarydef'd macro:
("a")@(EXPR0)
{("a")&("b")}
ab
texts<secondary>->primarydef.y++y=(EXPR0)@y.enddef;showtoken++;(EXPR0)
{(1.00002)*(a1)}
{-(1.00002a1)}
(EXPR0)<--1.00002a1
{primarydef}
{showtoken}
> ++=primarydef'd macro:
(-1.00002a1)@(EXPR0)
{(a2)+(a3)}
{(linearform)+(a4)}
{(linearform)+(a5)}
{(linearform)+(a6)}
{-(linearform)}
{(-1.00002a1)=(linearform)}
## a1=0.99998a2+0.99998a3+0.99998a4+0.99998a5+0.99998a6
{-((a3,a2))}
{((-a3,-a2))/(0.99998)}
{(a4)+(a5)}
{begingroup}
{showalldependencies}
%CAPSULE253=a4+a5
xpart %CAPSULE316=-1.00002a3
ypart %CAPSULE316=-1.00002a2
a1=0.99998a2+0.99998a3+0.99998a4+0.99998a5+0.99998a6
%CAPSULE1263=-a2-a3-a4-a5-a6
alpha=0.5p3~
{endgroup}
{(linearform)+(a6)}
{(a3)+(a4)}
{(linearform)+(a5)}
{(linearform)+(a6)}
{-((linearform,linearform))}
{((-1.00002a3,-1.00002a2))=((linearform,linearform))}
## a2=0.99998a3+0.99998a4+0.99998a5+0.99998a6
## a3=0.99998a4+0.99998a5+0.99998a6
{endgroup}
{(1.00002)*(0.25a4*4)}
{(0.25a4*4)+(1)}
{(0.25a5*4)+(0.25a6*4)}
{(0.25a4*4+1)=(linearform)}
## a4*4=0.99998a5*4+0.99998a6*4-3.99994
{(0.9)*(0.5p3~)}
{(0.45p3~)+(7)}
{alpha:=0.45p3~+7}
## alpha=0.45p3~+7
{showdependencies}
alpha=0.45p3~+7
a4=0.25a5*4+0.25a6*4-0.99998
a3=0.49998a5*4+0.49998a6*4-0.99997
a2=0.99997a5*4+0.99997a6*4-1.99992
a1=1.99992a5*4+1.99992a6*4-3.99982
{(0.66667)-(0.25a6*4)}
{(0.25a6*4)=(-0.25a6*4+0.66667)}
## a6*4=1.33334
{(0.25a5*4)=(0.33333)}
## a5*4=1.33331
#### a4=-0.33333
#### a3=0.33333
#### a2=0.66664
#### a1=1.33328
{cull}
{(4)*(0.33333)}
{chardp:=27}
{charcode:=27}
{openwindow}
! Improper `openwindow'.
<to be read again>
;
l.107 ...) to (0,0) at "whoops";
addto p; shipout p; cull p;
Say `openwindow k from (r0,c0) to (r1,c1) at (x,y)',
where all quantities are known and k is between 0 and 15.
{addto}
>> (8,1,5,-5,-5,5)
! Not a suitable variable.
<to be read again>
;
l.107 ...) at "whoops"; addto p;
shipout p; cull p;
At this point I needed to see the name of a picture variable.
(Or perhaps you have indeed presented me with one; I might
have missed it, if it wasn't followed by the proper token.)
So I'll not change anything just now.
{shipout}
! Variable p is the wrong type (transform).
<to be read again>
;
l.107 ...s"; addto p; shipout p;
cull p;
I was looking for a "known" picture variable.
So I'll not change anything just now.
{cull}
>> (8,1,5,-5,-5,5)
! Not a suitable variable.
<to be read again>
;
l.107 ...o p; shipout p; cull p;
At this point I needed to see the name of a picture variable.
(Or perhaps you have indeed presented me with one; I might
have missed it, if it wasn't followed by the proper token.)
So I'll not change anything just now.
{openwindow}
{-(0.5)}
Calling BLANKRECTANGLE(0,0,0,0)
Calling UPDATESCREEN
{special}
>> (8,1,5,-5,-5,5)
! Unsuitable expression.
<to be read again>
;
l.108 ...$) at (0,0); special p;
numspecial "p";
The expression shown above has the wrong type to be output.
{numspecial}
>> "p"
! Unsuitable expression.
<to be read again>
;
l.108 ...cial p; numspecial "p";
The expression shown above has the wrong type to be output.
{openwindow}
{(32)*(1024)}
! Arithmetic overflow.
l.109 ....49999 from (0,32*1024)
to (1,31*1057) at (0,0); shi...
Uh, oh. A little while ago one of the quantities that I was
computing got too large, so I'm afraid your answers will be
somewhat askew. You'll probably have to adopt different
tactics next time. But I shall try to carry on anyway.
{(31)*(1057)}
Calling BLANKRECTANGLE(100,100,0,1)
Calling UPDATESCREEN
{shipout}
[27.15]
Edge structure at line 109 (just shipped out):
row 0: | -2++ -1-- 0++ 4095--
row -1: | -4095++ -2-- -1++ 0--
{openwindow}
Path at line 110, before choices:
(0,0)
Path at line 110, after choices:
(0,0)
{length(path)}
Calling BLANKRECTANGLE(0,2,0,4)
Calling UPDATESCREEN
{openwindow}
{length((-1,0))}
{-(5)}
Calling BLANKRECTANGLE(1,10,1,3)
Calling UPDATESCREEN
{display}
{nullpicture}
>> picture
! Not a suitable variable.
<to be read again>
;
l.112 display nullpicture;
display p inwindow 3; display p in...
At this point I needed to see the name of a picture variable.
(Or perhaps you have indeed presented me with one; I might
have missed it, if it wasn't followed by the proper token.)
So I'll not change anything just now.
{display}
>> 3
! Bad window number.
<to be read again>
;
l.112 ...; display p inwindow 3;
display p inwindow 6;
It should be the number of an open window.
{display}
! Variable p is the wrong type (transform).
<to be read again>
;
l.112 ...; display p inwindow 6;
I was looking for a "known" picture variable.
So I'll not change anything just now.
{display}
Calling BLANKRECTANGLE(1,10,1,3)
Calling PAINTROW(2,1;4,5,6,10)
Calling UPDATESCREEN
{cull}
! Enormous number has been reduced.
l.113 ...luding (0.1,4095.999999
) withweight 3.5
I can't handle numbers bigger than about 4095.99998;
so I've changed your constant to that maximum amount.
! Weight must be -3, -2, -1, +1, +2, or +3.
<to be read again>
withweight
l.114 withweight
-3.5; display e0 inwindow 5.5; addto e0 also ...
I'll ignore the bad `with' clause and look for another.
{-(3.5)}
! Bad culling amounts.
<to be read again>
;
l.114 withweight-3.5;
display e0 inwindow 5.5; addto e0 also ...
Always cull by known amounts that exclude 0.
{display}
Calling BLANKRECTANGLE(1,10,1,3)
Calling PAINTROW(2,1;4,5,6,8,9,10)
Calling PAINTROW(1,1;6,7,8,9)
Calling UPDATESCREEN
{addto}
>> (8,1,5,-5,-5,5)
! Improper `addto'.
<to be read again>
;
l.114 ...w 5.5; addto e0 also p;
addto e0 contour 0;
This expression should have specified a known picture.
So I'll not change anything just now.
{addto}
>> 0
! Improper `addto'.
<to be read again>
;
l.114 ... p; addto e0 contour 0;
This expression should have been a known path.
So I'll not change anything just now.
{display}
Calling BLANKRECTANGLE(0,2,0,4)
Calling PAINTROW(2,1;0,1)
Calling PAINTROW(1,1;0,1)
Calling PAINTROW(0,1;1,2)
Calling UPDATESCREEN
{addto}
! Not a cycle.
<to be read again>
;
l.115 ...; addto e0 contour p~9;
That contour should have ended with `..cycle' or `&cycle'.
So I'll not change anything just now.
{display}
{(3)+(3)}
Calling BLANKRECTANGLE(1,10,1,3)
Calling PAINTROW(2,1;4,5,6,10)
Calling UPDATESCREEN
{display}
{begingroup}
{vardef}
{endgroup}
! Variable e0e0 has been obliterated.
<to be read again>
;
l.116 ...vardef e[]e=enddef;6]];
It seems you did a nasty thing---probably by accident,
but nevertheless you nearly hornswoggled me...
While I was evaluating the right-hand side of this
command, something happened, and the left-hand side
is no longer a variable! So I won't change anything.
{addto}
{display}
Calling PAINTROW(1,1;0,1,2)
Calling PAINTROW(0,0;0,1,2)
Calling UPDATESCREEN
{display}
{display}
Calling UPDATESCREEN
{begingroup}
{let}
{vardef}
{endgroup}
! Variable c.a1 has been obliterated.
<to be read again>
;
l.120 ...;vardef b=enddef;1]] ];
It seems you did a nasty thing---probably by accident,
but nevertheless you nearly hornswoggled me...
While I was evaluating the suffix of this variable,
something was redefined, and it's no longer a variable!
In order to get back on my feet, I've inserted `0' instead.
{b1:=0}
! Variable b1 has been obliterated.
<to be read again>
;
l.120 ...;vardef b=enddef;1]] ];
It seems you did a nasty thing---probably by accident,
but nevertheless you nearly hornswoggled me...
While I was evaluating the right-hand side of this
command, something happened, and the left-hand side
is no longer a variable! So I won't change anything.
{errhelp}
>> 0
! Not a string.
<to be read again>
;
l.121 errhelp 0;
errmessage "Be like Poirot";
A message should be a known string expression.
{errmessage}
! Be like Poirot.
<to be read again>
;
l.121 ...ssage "Be like Poirot";
This error message was generated by an `errmessage'
command, so I can't give any explicit help.
Pretend that you're Hercule Poirot, examine all clues,
and deduce the truth by order and method.
{errhelp}
{errmessage}
! .
<to be read again>
;
l.122 ...p "Help"; errmessage"";
Help
{errhelp}
{errmessage}
! Another.
<to be read again>
;
l.123 ...; errmessage "Another";
(That was another `errmessage'.)
{headerbyte}
>> 0
! Improper location.
<to be read again>
;
l.124 headerbyte 0;
headerbyte(48.5)substring(-9,9)of"long";
I was looking for a known, positive number.
For safety's sake I'll ignore the present command.
{headerbyte}
! Missing `:' has been inserted.
<to be read again>
substring
l.124 ...aderbyte(48.5)substring
(-9,9)of"long";
A colon should follow a headerbyte or fontinfo location.
{-(9)}
{((-9,9))substring("long")}
>> "long"
! Invalid code has been replaced by 0.
<to be read again>
;
l.124 ...ubstring(-9,9)of"long";
I was looking for a number between 0 and 255, or for a
string of length 1. Didn't find it; will use 0 instead.
{headerbyte}
{(2)*(0.33333)}
{fontdimen}
{(2)*(0.33333)}
>> "q"
! Improper font parameter.
<to be read again>
;
l.125 ..."; fontdimen 9:2a6,"q";
fontdimen 1:2048;
I'm zeroing this one. Proceed, with fingers crossed.
{fontdimen}
{fontmaking:=1}
{extensible}
! Missing `:' has been inserted.
<to be read again>
5
l.126 ...king:=1; extensible 5 5
,"c"255.5,"d"; charlist 0,5,"...
I'm processing `extensible c: t,m,b,r'.
! Missing `,' has been inserted.
<to be read again>
255.5
l.126 ...extensible 5 5,"c"255.5
,"d"; charlist 0,5,"a","d";
I'm processing `extensible c: t,m,b,r'.
>> 255.5
! Invalid code has been replaced by 0.
<to be read again>
,
l.126 ...xtensible 5 5,"c"255.5,
"d"; charlist 0,5,"a","d";
I was looking for a number between 0 and 255, or for a
string of length 1. Didn't find it; will use 0 instead.
{charlist}
! Character code 5 is already extensible.
<to be read again>
,
l.126 ...,"d"; charlist 0,5,"a",
"d";
It's not legal to name a character more than once in a
ligtable, charlist, or extensible command, except that
extensible characters can come at the end of a charlist.
Therefore I'm not going to make any changes just now.
{ligtable}
{-(2048)}
! Character code 0 is already in a charlist.
<to be read again>
:
l.127 ...","c":"d" kern -2048,0:
"c":99.5:"e"=:"f",0kern'; lig...
It's not legal to name a character more than once in a
ligtable, charlist, or extensible command, except that
extensible characters can come at the end of a charlist.
Therefore I'm not going to make any changes just now.
! Character c is already in a ligtable.
<to be read again>
:
l.127 ...":"d" kern -2048,0:"c":
99.5:"e"=:"f",0kern'; ligtabl...
It's not legal to name a character more than once in a
ligtable, charlist, or extensible command, except that
extensible characters can come at the end of a charlist.
Therefore I'm not going to make any changes just now.
>> (xpart ',ypart ')
! Improper kern.
<to be read again>
;
l.127 ...":99.5:"e"=:"f",0kern';
ligtable 5:0;
The amount of kern should be a known numeric value.
I'm zeroing this one. Proceed, with fingers crossed.
{ligtable}
! Character code 5 is already extensible.
<to be read again>
:
l.127 ..."f",0kern'; ligtable 5:
0;
It's not legal to name a character more than once in a
ligtable, charlist, or extensible command, except that
extensible characters can come at the end of a charlist.
Therefore I'm not going to make any changes just now.
! Illegal ligtable step.
<to be read again>
;
l.127 ...",0kern'; ligtable 5:0;
I was looking for `=:' or `kern' here.
{def}
clear(TEXT0)->interim(TEXT0):=$
(TEXT0)<-hppp
{interim}
{hppp:=-1}
{(0)=(0)}
! Redundant equation.
<to be read again>
;
l.128 ...f; clear(hppp); vppp=0;
I already knew that this equation was true.
But perhaps no harm has been done; let's continue.
{begingroup}
clear(TEXT0)->interim(TEXT0):=$
(TEXT0)<-tracingmacros
{interim}
{tracingmacros:=-1}
{interim}
{tracingcommands:=-1}
Runaway text?
tracingoutput
! Forbidden token found while scanning a text argument.
<inserted text>
)
<to be read again>
\
l.129 ...); clear(tracingoutput\
;
It seems that a right delimiter was left out,
causing me to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
{endgroup}
{def}
{def}
f(SUFFIX0)(EXPR1)(EXPR2)(TEXT3)->numeric.w;show(EXPR1);addto(SUFFIX0)con
tour(0,0)..(2,0)..(1,$)..(1,1)..cycle.withpen.qq;addto(SUFFIX0)doublepat
h(0,0){1,1}..{2,1}(2,1)withpen.qq;addto(SUFFIX0)doublepath(($,$){1,0}..(
1,1){1,0})scaled0.5withpen.nullpen;cull(SUFFIX0)excluding(0,3)withweight
1.5;
! Missing `]' has been inserted.
<to be read again>
,
l.140 f(e[3,
w); g(e3,transformed p,penoffset-(1,1.3)of(pencir...
I've seen a `[' and a subscript value, in a suffix,
so a right bracket should have come next.
I shall pretend that one was there.
(SUFFIX0)<-e3
(EXPR1)<-unknown path w
! Missing argument to f.
<to be read again>
;
l.140 f(e[3,w);
g(e3,transformed p,penoffset-(1,1.3)of(pencir...
That macro has more parameters than you thought.
I'll continue by pretending that each missing argument
is either zero or null.
(EXPR2)<-0
! Missing argument to f.
<to be read again>
;
l.140 f(e[3,w);
g(e3,transformed p,penoffset-(1,1.3)of(pencir...
That macro has more parameters than you thought.
I'll continue by pretending that each missing argument
is either zero or null.
(TEXT3)<-
{numeric}
{show}
>> unknown path %CAPSULE1718
{addto}
Path at line 140, before choices:
(0,0)
..(2,0)
..(1,-1)
..(1,1)
..cycle
Path at line 140, after choices:
(0,0)..controls (0.56189,-0.5286) and (1.43811,0.5286)
..(2,0)..controls (2.70831,-0.66634) and (1.66634,-1.70831)
..(1,-1)..controls (0.4714,-0.43811) and (1.5286,0.43811)
..(1,1)..controls (0.33366,1.70831) and (-0.70831,0.66634)
..cycle
! Strange path (turning number is zero).
<to be read again>
;
f->.....(1,1)..cycle.withpen.qq;
addto(SUFFIX0)doublepath(0,0)...
<to be read again>
;
l.140 f(e[3,w);
g(e3,transformed p,penoffset-(1,1.3)of(pencir...
The path doesn't have a counterclockwise orientation,
so I'll probably have trouble drawing it.
Tracing edges at line 140: (weight 1)
@ Octant 1 (2 offsets), from (0.39241,-2.6526) to (1.60759,-2.34741)
@ transition line 0, from (0.39241,-2.6526) to (0.39241,-2.6526)
@ transition line 1, from (1.60759,-2.34741) to (2.60759,-1.84741)
@ transition line 2, from (2.60759,-1.84741) to (3.60759,-0.84741)
(1,-3)(1,-2)(3,-2)
@ retrograde line from (3.60759,-0.84741) to (1.60759,-2.34741)
(3,-1)
@ Octant 8 (2 offsets), from (1.60759,-2.34741) to (-0.47932,-0.52005)
@ retrograde line from (1.60759,-2.34741) to (-0.89241,-0.34741)
(3,-2)(1,-2)(1,-1)(-1,-1)
@ transition line 3, from (-0.89241,-0.34741) to (0.60759,-1.84741)
@ transition line 2, from (0.60759,-1.84741) to (1.60759,-2.34741)
@ transition line 1, from (1.86496,-2.40468) to (0.86496,-1.90468)
@ transition line 2, from (1.02068,-2.02005) to (2.02068,-2.52005)
@ transition line 1, from (2.02068,-2.52005) to (2.02068,-2.52005)
(-1,0)(-1,-1)(0,-1)(0,-2)(2,-2)
@ retrograde line from (2.02068,-2.52005) to (-0.47932,-0.52005)
(2,-3)(2,-2)(1,-2)
@ Octant 7 (0 offsets), from (-0.47932,-0.52005) to (-0.26303,-1.0071)
@ retrograde line from (-0.47932,-0.52005) to (-0.47932,-0.52005)
@ transition line 0, from (-0.47932,-0.52005) to (-0.47932,-0.52005)
@ retrograde line from (-0.26303,-1.0071) to (-0.26303,-1.0071)
@ Octant 6 (2 offsets), from (-0.26303,-1.0071) to (0.01547,-0.01552)
@@ with autorounding: from (0,-1.0071) to (0.24998,-0.25002)
@ retrograde line from (0,-1.0071) to (0.5,0.4929)
(1,-1)(0,-1)
@ transition line 3, from (0.5,0.4929) to (0.5,0.4929)
@ transition line 2, from (0.5,0.4929) to (0,-1.0071)
@ transition line 1, from (-0.06406,-1.43315) to (0.43594,0.06685)
@ transition line 2, from (0.24998,-0.25002) to (-0.25002,-1.75002)
@ transition line 1, from (-0.25002,-1.75002) to (-0.25002,-1.75002)
(0,0)
@ retrograde line from (-0.25002,-1.75002) to (0.24998,-0.25002)
(0,-2)
@ Octant 5 (2 offsets), from (0.01547,-0.01552) to (1.5071,1.26302)
@@ with autorounding: from (0.24998,-0.25002) to (1.5071,1)
@ retrograde line from (0.24998,-0.25002) to (2.24998,1.24998)
(0,0)(1,0)
@ transition line 0, from (2.24998,1.24998) to (2.24998,1.24998)
@ transition line 1, from (2.24998,1.24998) to (1.24998,0.74998)
@ transition line 2, from (1.06062,0.6165) to (2.06062,1.1165)
@ transition line 1, from (1.5071,1) to (0.5071,0.5)
@ transition line 2, from (0.5071,0.5) to (-0.4929,-0.5)
(1,1)
@ retrograde line from (-0.4929,-0.5) to (1.5071,1)
(1,0)
@ Octant 4 (2 offsets), from (1.5071,1.26302) to (3.52005,-0.52068)
@ retrograde line from (1.5071,1.26302) to (4.0071,-0.73698)
(1,1)(2,1)(2,0)(4,0)
@ transition line 3, from (4.0071,-0.73698) to (2.5071,0.76302)
@ transition line 2, from (2.5071,0.76302) to (1.5071,1.26302)
@ transition line 1, from (1.2221,1.33118) to (2.2221,0.83118)
@ transition line 2, from (2.02005,0.97932) to (1.02005,1.47932)
@ transition line 1, from (1.02005,1.47932) to (1.02005,1.47932)
(4,-1)(4,0)(3,0)
@ retrograde line from (1.02005,1.47932) to (3.52005,-0.52068)
(3,1)(2,1)(2,0)(3,0)
@ Octant 3 (0 offsets), from (3.52005,-0.52068) to (3.3474,-0.10759)
@ retrograde line from (3.52005,-0.52068) to (3.52005,-0.52068)
@ transition line 0, from (3.52005,-0.52068) to (3.52005,-0.52068)
(3,-1)(4,-1)
@ retrograde line from (3.3474,-0.10759) to (3.3474,-0.10759)
@ Octant 2 (2 offsets), from (3.3474,-0.10759) to (3.65259,1.10759)
@ retrograde line from (3.3474,-0.10759) to (2.8474,-1.60759)
(4,0)(3,0)
@ transition line 3, from (2.8474,-1.60759) to (2.8474,-1.60759)
@ transition line 2, from (2.8474,-1.60759) to (3.3474,-0.10759)
@ transition line 1, from (3.43011,0.30382) to (2.93011,-1.19618)
@ transition line 2, from (3.06989,-0.8038) to (3.56989,0.6962)
@ transition line 1, from (3.65259,1.10759) to (3.65259,1.10759)
(3,-2)(3,0)(4,0)
@ Octant 3 (0 offsets), from (3.65259,1.10759) to (3.47995,1.52068)
@ transition line 0, from (3.65259,1.10759) to (3.65259,1.10759)
@ Octant 4 (2 offsets), from (3.47995,1.52068) to (0.4929,3.73698)
@ transition line 3, from (3.47995,1.52068) to (1.97995,3.02068)
@ transition line 2, from (1.7779,3.16882) to (0.7779,3.66882)
@ transition line 1, from (0.4929,3.73698) to (0.4929,3.73698)
(4,2)(3,2)(3,3)(1,3)
@ Octant 5 (2 offsets), from (0.4929,3.73698) to (-2.01547,2.01552)
@@ with autorounding: from (0.4929,4) to (-2.24997,2.25003)
@ transition line 0, from (0.4929,4) to (0.4929,4)
@ transition line 1, from (-0.06065,3.88348) to (-1.06065,3.38348)
@ transition line 2, from (-1.24997,3.25003) to (-2.24997,2.25003)
(1,4)(-1,4)(-1,3)(-2,3)
@ Octant 6 (2 offsets), from (-2.01547,2.01552) to (-2.73697,0.0071)
@@ with autorounding: from (-2.24997,2.25003) to (-3,0.0071)
@ transition line 3, from (-2.24997,2.25003) to (-2.24997,2.25003)
@ transition line 2, from (-2.43593,1.93317) to (-2.93593,0.43317)
@ transition line 1, from (-3,0.0071) to (-3,0.0071)
(-2,2)(-3,2)
@ Octant 7 (0 offsets), from (-2.73697,0.0071) to (-2.52068,-0.47995)
@ transition line 0, from (-2.73697,0.0071) to (-2.73697,0.0071)
@ Octant 8 (2 offsets), from (-2.52068,-0.47995) to (0.39241,-2.6526)
@ transition line 3, from (-2.52068,-0.47995) to (-1.02068,-1.97995)
@ transition line 2, from (-0.86494,-2.09534) to (0.13506,-2.59534)
@ transition line 1, from (0.39241,-2.6526) to (0.39241,-2.6526)
(-3,-1)(-2,-1)(-2,-2)(0,-2)(0,-3).
{addto}
Path at line 140, before choices:
(0,0){2896.30943,2896.30934}
..{3663.57385,1831.78674}(2,1)
Path at line 140, after choices:
(0,0)..controls (0.53566,0.53566) and (1.32689,0.66344)
..(2,1)
Tracing edges at line 140: (weight 1)
@ Octant 1 (2 offsets), from (0,-2.5) to (4,0)
@@ with autorounding: from (0,-2.5) to (4,0)
@ transition line 0, from (0,-2.5) to (0,-2.5)
@ transition line 1, from (0,-2.5) to (1,-2)
@ transition line 2, from (1.607,-1.57747) to (0.607,-2.07747)
@ transition line 1, from (2,-1.5) to (3,-1)
@ transition line 2, from (3,-1) to (4,0)
(2,-2)(2,-1)(4,-1)
@ Octant 2 (2 offsets), from (4,0) to (4.5,1.5)
@ transition line 3, from (4,0) to (4,0)
@ transition line 2, from (4,0) to (4.5,1.5)
@ transition line 1, from (4.5,1.5) to (4.5,1.5)
(4,1)(5,1)
@ Octant 3 (0 offsets), from (4.5,1.5) to (4.5,1.5)
@ transition line 0, from (4.5,1.5) to (4.5,1.5)
@ Octant 4 (2 offsets), from (4.5,1.5) to (2,3.5)
@ transition line 3, from (4.5,1.5) to (3,3)
@ transition line 2, from (3,3) to (2,3.5)
@ transition line 1, from (2,3.5) to (2,3.5)
(5,2)(4,2)(4,3)(2,3)
@ Octant 5 (2 offsets), from (2,3.5) to (-2,1)
@@ with autorounding: from (2,3.5) to (-2,1)
@ transition line 0, from (2,3.5) to (2,3.5)
@ transition line 1, from (0.607,2.92253) to (-0.393,2.42253)
@ transition line 2, from (-1,2) to (-2,1)
(2,4)(2,3)(0,3)(0,2)(-1,2)
@ Octant 6 (2 offsets), from (-2,1) to (-2.5,-0.5)
@ transition line 3, from (-2,1) to (-2,1)
@ transition line 2, from (-2,1) to (-2.5,-0.5)
@ transition line 1, from (-2.5,-0.5) to (-2.5,-0.5)
(-1,1)(-2,1)
@ Octant 7 (0 offsets), from (-2.5,-0.5) to (-2.5,-0.5)
@ transition line 0, from (-2.5,-0.5) to (-2.5,-0.5)
@ Octant 8 (2 offsets), from (-2.5,-0.5) to (0,-2.5)
@ transition line 3, from (-2.5,-0.5) to (-1,-2)
@ transition line 2, from (-1,-2) to (0,-2.5)
@ transition line 1, from (0,-2.5) to (0,-2.5)
(-2,-1)(-1,-1)(-1,-2).
{addto}
Path at line 140, before choices:
(-1,-1){4096,0}
..{4096,0}(1,1)
Path at line 140, after choices:
(-1,-1)..controls (0.10457,-1) and (-0.10457,1)
..(1,1)
{(path)scaled(0.5)}
{nullpen}
Tracing edges at line 140: (weight 1)
(1,0)(1,1)(1,0).
{cull}
g(SUFFIX0)->showall(SUFFIX0)
(SUFFIX0)<-e3
! Too many arguments to g;
Missing `)' has been inserted.
l.140 f(e[3,w); g(e3,
transformed p,penoffset-(1,1.3)of(pencir...
I'm going to assume that the comma I just read was a
right delimiter, and then I'll begin expanding the macro.
You might want to delete some tokens before continuing.
{showall}
{(picture)transformed((8,1,5,-5,-5,5))}
>> Edge structure at line 140:
{-((1,1.3))}
{pencircle}
{(future pen)scaled(20)}
{-(0.5)}
{(future pen)yscaled(-0.5)}
Pen polygon at line 140 (newly created):
(1.5,-5)
.. (4.5,-4.5)
.. (6,-4)
.. (8,-3)
.. (9.5,-1.5)
.. (10,-0.5)
.. (10,0.5)
.. (9.5,1.5)
.. (8,3)
.. (6,4)
.. (4.5,4.5)
.. (1.5,5)
.. (-1.5,5)
.. (-4.5,4.5)
.. (-6,4)
.. (-8,3)
.. (-9.5,1.5)
.. (-10,0.5)
.. (-10,-0.5)
.. (-9.5,-1.5)
.. (-8,-3)
.. (-6,-4)
.. (-4.5,-4.5)
.. (-1.5,-5)
.. cycle
{((-1,-1.3))penoffset(pen)}
>> (-9.5,1.5)
Path at line 141, before choices:
(0,0)..controls (1,1) and (-1,1)
..(3,0)
Path at line 141, after choices:
(0,0)..controls (1,1) and (-1,1)
..(3,0)
{((0,1))directiontime(path)}
>> 0.33333
{(3.14159)point(path)}
{((3.14159,4))subpath(path)}
{((7.68668,2.72437))intersectiontimes(path)}
>> (0,0)
Path at line 143, before choices:
(-1,1.1){curl 1}
..{curl 1}(1,-1)
Path at line 143, after choices:
(-1,1.1)..controls (-0.33333,0.40001) and (0.33333,-0.3)
..(1,-1)
{(-1)precontrol((0,0))}
{(path)intersectiontimes((0,0))}
>> (-1,-1)
{addto}
{-(4094.99998)}
{-(0.00002)}
Path at line 144, before choices:
(-4094.99998,0){curl 1}
..{curl 1}(4094.99998,-0.00002)
Path at line 144, after choices:
(-4094.99998,0)..controls (-1365,0) and (1365,-0.00002)
..(4094.99998,-0.00002)
{pencircle}
Pen polygon at line 144 (newly created):
(0.5,0)
.. (0,0.5)
.. (-0.5,0)
.. (0,-0.5)
.. cycle
Tracing edges at line 144: (weight 1)
@ Octant 8 (1 offset), from (-4095.49998,0) to (4094.99998,-0.50002)
@@ with autorounding: from (-4095.49998,0) to (4094.99998,-0.50002)
@ transition line 2, from (-4095.49998,0) to (-4094.99998,-0.5)
@ transition line 1, from (4094.99998,-0.50002) to (4094.99998,-0.50002)
(-4095,0)
@ Octant 1 (1 offset), from (4094.99998,-0.50002) to (4095.49998,-0.0000
2)
@ transition line 0, from (4094.99998,-0.50002) to (4094.99998,-0.50002)
@ transition line 1, from (4094.99998,-0.50002) to (4095.49998,-0.00002)
(-4095,-1)(4095,-1)
@ Octant 2 (0 offsets), from (4095.49998,-0.00002) to (4095.49998,-0.000
02)
@ transition line 1, from (4095.49998,-0.00002) to (4095.49998,-0.00002)
@ Octant 3 (0 offsets), from (4095.49998,-0.00002) to (4095.49998,-0.000
02)
@ transition line 0, from (4095.49998,-0.00002) to (4095.49998,-0.00002)
@ Octant 4 (1 offset), from (4095.49998,-0.00002) to (-4094.99998,0.5)
@@ with autorounding: from (4095.49998,-0.00002) to (-4094.99998,0.5)
@ transition line 2, from (4095.49998,-0.00002) to (4094.99998,0.49998)
@ transition line 1, from (-4094.99998,0.5) to (-4094.99998,0.5)
(4095,0)(-4095,0)
@ Octant 5 (1 offset), from (-4094.99998,0.5) to (-4095.49998,0)
@ transition line 0, from (-4094.99998,0.5) to (-4094.99998,0.5)
@ transition line 1, from (-4094.99998,0.5) to (-4095.49998,0)
(-4095,1)
@ Octant 6 (0 offsets), from (-4095.49998,0) to (-4095.49998,0)
@ transition line 1, from (-4095.49998,0) to (-4095.49998,0)
@ Octant 7 (0 offsets), from (-4095.49998,0) to (-4095.49998,0)
@ transition line 0, from (-4095.49998,0) to (-4095.49998,0)
(-4095,0).
{addto}
{(picture)shifted((0,257))}
! A statement can't begin with `,'.
<to be read again>
,
l.145 ...o e3 shifted (0,257); ,
"flushed with pride"; numeric...
I was looking for the beginning of a new statement.
If you just proceed without changing anything, I'll ignore
everything up to the next `;'. Please insert a semicolon
now in front of anything that you don't want me to delete.
(See Chapter xx of The METAFONTbook for an example.)
! Extra tokens will be flushed.
<to be read again>
,
l.145 ...o e3 shifted (0,257); ,
"flushed with pride"; numeric...
I've just read as much of that statement as I could fathom,
so a semicolon should have been next. It's very puzzling...
but I'll try to get myself back together, by ignoring
everything up to the next `;'. Please insert a semicolon
now in front of anything that you don't want me to delete.
(See Chapter xx of The METAFONTbook for an example.)
{numeric}
{def}
f(EXPR0)(EXPR1)(EXPR2)->showalldependencies;showdependencies;show1/3(3,6
)*(((EXPR0)+(EXPR1))+((EXPR1)-(EXPR0))),(1,1)/sqrt2zscaled((EXPR0)+1,(EX
PR0)+2)-((EXPR0)+1,(EXPR0)+2)rotated45,(0,1)zscaled(1,(EXPR1)+2)-(1,(EXP
R1)+2)rotated90
{(xx)+(1)}
{(xx+1)/(0.3)}
(EXPR0)<-3.3333xx+3.3333
{(yy)-(1)}
{(yy-1)/(0.5)}
(EXPR1)<-2yy-2
(EXPR2)<-(xx,0)
{showalldependencies}
xpart %CAPSULE1663=xx
%CAPSULE1671=2yy-2
%CAPSULE193 = 3.3333xx+3.3333
alpha=0.45p3~+7
{showdependencies}
alpha=0.45p3~+7
{show}
{(1/3)*((3,6))}
{(3.3333xx+3.3333)+(2yy-2)}
{(2yy-2)-(3.3333xx+3.3333)}
{(linearform)+(linearform)}
{((1,2))*(4yy-4)}
>> (4yy-4,8yy-8)
{sqrt(2)}
{((1,1))/(1.41422)}
{(3.3333xx+3.3333)+(1)}
{(3.3333xx+3.3333)+(2)}
{((0.7071,0.7071))zscaled((3.3333xx+4.3333,3.3333xx+5.3333))}
{(3.3333xx+3.3333)+(1)}
{(3.3333xx+3.3333)+(2)}
{((3.3333xx+4.3333,3.3333xx+5.3333))rotated(45)}
{((-0.7071,4.71399xx+6.83531))-((-0.7071,4.71399xx+6.83531))}
>> (0,0)
{(2yy-2)+(2)}
{((0,1))zscaled((1,2yy))}
{(2yy-2)+(2)}
{((1,2yy))rotated(90)}
{((-2yy,1))-((-2yy,1))}
>> (0,0)
{(1000)*(o3)}
{(o1)-(o2)}
{(4000)*(linearform)}
{(1000o3)-(linearform)}
{(4000)*(o2)}
{(linearform)+(4000o2)}
{(linearform)+(9)}
{(0.01)*(o3)}
{-(0.01o3)}
{(3)*(ooo)}
{(-0.01o3)+(3ooo)}
{begingroup}
{(o2)+(o4)}
{(linearform)+(o5)}
{(linearform)-(20)}
{(9/10)*(linearform)}
{(oo)=(linearform)}
## oo=0.9o5+0.9o2+0.9o4-18
{(0.5)*(o2)}
{(o1)+(0.5o2)}
{(8/9)*(linearform)}
{(o5)=(linearform)}
## o5=0.88889o1+0.44444o2
{(o4)=(linearform)}
## o4=0.88889o1+0.44444o2
{(0.0001)*(o2)}
{-(0.0001o2)}
{(o6)=(-0.0001o2)}
## o6=-0.0001o2
{showalldependencies}
o6=-0.0001o2
o4=0.88889o1+0.44444o2
o5=0.88889o1+0.44444o2
oo=1.6o1+1.7o2-18
%CAPSULE1485 = -0.01o3+3ooo
xpart %CAPSULE1509 = 1000o3-4000o1+8000o2+9
xpart %CAPSULE1587=xpart '
ypart %CAPSULE1587=ypart '
alpha=0.45p3~+7
{numeric}
### -1.6o1=1.7o2-oo-18
! Arithmetic overflow.
l.151 numeric o[];
xpart(alfa,[[pair alfa;0]])]])=-2/3[[save...
Uh, oh. A little while ago one of the quantities that I was
computing got too large, so I'm afraid your answers will be
somewhat askew. You'll probably have to adopt different
tactics next time. But I shall try to carry on anyway.
### -3062.5o2*4 = 1000o3-xpart %CAPSULE1509-2500.00002oo-32758.99998
#### o6=0
### -0.04578o3 = 0.44112oo-o4+8.50041
### -o4 = -o5
### 0.21834o5 = 3ooo-%CAPSULE1485+0.09631oo+1.85596
{begingroup}
{pair}
### -alfa=-xpart %CAPSULE1554
{endgroup}
{xpart((xpart %CAPSULE1554,0))}
{endgroup}
{(%CAPSULE1485)+(%CAPSULE1544)}
{begingroup}
{save}
{(1)-(p$)}
### p$=-ypart %CAPSULE1540+1
{endgroup}
{(2/3)*((-ypart %CAPSULE1540+1,ypart %CAPSULE1540))}
{-((xpart %CAPSULE1526,-xpart %CAPSULE1526+0.66667))}
{((xpart %CAPSULE1509,ypart %CAPSULE1509))=((xpart %CAPSULE1497,-xpart %
CAPSULE1497-0.66667))}
{((xpart ',ypart '))=((xpart %CAPSULE1497,-xpart %CAPSULE1497-0.66667))}
## ypart '=-xpart '-0.66667
{(0.5)*(ooo)}
{begingroup}
{numeric}
### -ooo=-%CAPSULE1952
{endgroup}
{(%CAPSULE1952)+(1)}
{(1/2)*(%CAPSULE1742)}
{-(%CAPSULE1734)}
{(2)*(%CAPSULE1732)}
{(-0.5%CAPSULE1671-0.5)=(%CAPSULE1671)}
{(oo)=(-0.33333)}
## oo=-0.33333
{for}
{sqrt(-1)}
! Square root of -1 has been replaced by 0.
l.153 for @=angle(sqrt$,
mlog$):charcode:=uniformdeviate$; cha...
Since I don't take square roots of negative numbers,
I'm zeroing this one. Proceed, with fingers crossed.
{mlog(-1)}
! Logarithm of -1 has been replaced by 0.
l.153 for @=angle(sqrt$,mlog$)
:charcode:=uniformdeviate$; cha...
Since I don't take logs of non-positive numbers,
I'm zeroing this one. Proceed, with fingers crossed.
{angle((0,0))}
! angle(0,0) is taken as zero.
l.153 for @=angle(sqrt$,mlog$):
charcode:=uniformdeviate$; cha...
The `angle' between two identical points is undefined.
I'm zeroing this one. Proceed, with fingers crossed.
Runaway loop?
charcode:=uniformdeviate$;charht:=2048;addto.e3contour ETC.
! Forbidden token found while scanning the text of a for loop.
<inserted text>
endfor
<to be read again>
endtext
l.163 ... showstats; bye endtext
I suspect you have forgotten an `endfor',
causing me to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
{loop value=0}
{uniformdeviate(-1)}
! Uniform random number less than -1 has been replaced by 0.
<for(0)> ...de:=uniformdeviate$;
charht:=2048;addto.e3contour(...
<inserted text> endfor
<to be read again>
endtext
l.163 ... showstats; bye endtext
The upper bound on a random number should be positive, so
I'm zeroing this one. Proceed, with fingers crossed.
{charcode:=0}
{charht:=2048}
{addto}
{-(100)}
{-(99)}
Path at line 163, before choices:
(0,-100)..tension 500
..(100,-99)..tension 3000
..cycle
Path at line 163, after choices:
(0,-100)..controls (-36.92659,-103.51175) and (136.98943,-101.7726)
..(100,-99)..controls (99.9889,-98.99916) and (0.01108,-99.99895)
..cycle
Tracing edges at line 163: (weight 1)
(-3,-101)(-3,-102)(72,-102)(72,-101)(98,-101)(98,-100)(105,-100)
(105,-99)(47,-99)(47,-100)(-5,-100)(-5,-101).
{tracingoutput:=0}
{shipout}
! Enormous charht has been reduced.
<to be read again>
;
<for(0)> ...=(EXPR0);shipout.e3;
special"bye";interim.char99="...
<inserted text> endfor
<to be read again>
endtext
l.163 ... showstats; bye endtext
Font metric dimensions must be less than 2048pt.
[0.15]
{special}
{interim}
! The token `char' isn't an internal quantity.
<to be read again>
char
<for(0)> ...al"bye";interim.char
99="c";true=false;[[clear(tra...
<inserted text> endfor
<to be read again>
endtext
l.163 ... showstats; bye endtext
Something like `tracingonline' should follow `interim'.
{char(99)}
{("c")=("c")}
! Redundant equation.
<to be read again>
;
<for(0)> ...;interim.char99="c";
true=false;[[clear(tracingcom...
<inserted text> endfor
<to be read again>
endtext
l.163 ... showstats; bye endtext
I already knew that this equation was true.
But perhaps no harm has been done; let's continue.
{true}
{false}
{(true)=(false)}
! Inconsistent equation.
<to be read again>
;
<for(0)> ...ar99="c";true=false;
[[clear(tracingcommands);char...
<inserted text> endfor
<to be read again>
endtext
l.163 ... showstats; bye endtext
The equation I just read contradicts what was said before.
But don't worry; continue and I'll just ignore it.
{begingroup}
clear(TEXT0)->interim(TEXT0):=$
(TEXT0)<-tracingcommands
{interim}
{tracingcommands:=-1}
! Enormous charht has been reduced.
<to be read again>
;
<for(0)> ...shipout.nullpicture;
"careful"for.for=(EXPR0)step2...
<inserted text> endfor
<to be read again>
endtext
l.163 ... showstats; bye endtext
Font metric dimensions must be less than 2048pt.
[0.-13]
careful METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
ETAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
ETAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
ETAFONT METAFONT METAFONT METAFONT
{endgroup}
{scrollmode}
{char(31)}
{("hello again")&("↑↑_")}
hello again↑↑_
{save}
### -0.45p3~=-alpha+7
{def}
{begingroup}
{showall}
{nullpen}
>> Pen polygon at line 163:
(0,0)
.. cycle
{makepath(pen)}
>> Path at line 163:
(1,-2)..controls (1,-2) and (2,-1)
..(2,-1)..controls (2,-1) and (2.5,0.5)
..(2.5,0.5)..controls (2.5,0.5) and (1,2)
..(1,2)..controls (1,2) and (0,2.5)
..(0,2.5)..controls (0,2.5) and (-1,2)
..(-1,2)..controls (-1,2) and (-2,1)
..(-2,1)..controls (-2,1) and (-2.5,-0.5)
..(-2.5,-0.5)..controls (-2.5,-0.5) and (-1,-2)
..(-1,-2)..controls (-1,-2) and (0,-2.5)
..(0,-2.5)..controls (0,-2.5) and (1,-2)
..cycle
{(pen)rotated(1)}
Pen polygon at line 163 (newly created):
(0.97366,1.51723)
.. cycle
{makepath(pen)}
>> Path at line 163:
(0.97366,1.51723)..controls (0.97366,1.51723) and (0.97366,1.51723)
..cycle
{addto}
Path at line 163, before choices:
(0,2){0,-4096}
..{0,-4096}(0,1){0,-4096}
..{4096,0}(1,0){4096,0}
..{4096,0}(2,0){4096,0}
..{0,-4096}cycle
Path at line 163, after choices:
(0,2)..controls (0,1.66667) and (0,1.33333)
..(0,1)..controls (0,0.44771) and (0.44771,0)
..(1,0)..controls (1.33333,0) and (1.66667,0)
..(2,0)..controls (8.43791,0) and (0,8.43791)
..cycle
{pencircle}
Pen polygon at line 163 (newly created):
(0.5,0)
.. (0,0.5)
.. (-0.5,0)
.. (0,-0.5)
.. cycle
Tracing edges at line 163: (weight 1)
@ Octant 7 (0 offsets), from (-0.5,1) to (-0.20709,0.29288)
@@ with autorounding: from (0,1) to (0.00002,0.49998)
@ transition line 0, from (0,1) to (0,1)
(0,1)
@ Octant 8 (1 offset), from (-0.20709,0.29288) to (1,-0.5)
@ transition line 2, from (-0.20709,0.29288) to (0.29291,-0.20712)
@ transition line 1, from (1,-0.5) to (1,-0.5)
@ Octant 1 (1 offset), from (1,-0.5) to (4.57939,0.5873)
@@ with autorounding: from (1,0) to (4.50002,1.00002)
@ transition line 0, from (1,0) to (1,0)
@ transition line 1, from (4.00002,0.50002) to (4.50002,1.00002)
(0,0)(4,0)
@ Octant 2 (0 offsets), from (4.57939,0.5873) to (4.92122,1.43936)
@ transition line 1, from (4.92122,1.43936) to (4.92122,1.43936)
@ Octant 3 (0 offsets), from (4.92122,1.43936) to (3.91422,3.41422)
@@ with autorounding: from (5,1.43936) to (4.00002,3.49998)
@ transition line 0, from (5,1.43936) to (5,1.43936)
(4,1)(5,1)
@ Octant 4 (1 offset), from (3.91422,3.41422) to (1.43938,4.9212)
@@ with autorounding: from (4.00002,3.49998) to (1.43938,5)
@ transition line 2, from (4.00002,3.49998) to (3.50002,3.99998)
@ transition line 1, from (1.43938,5) to (1.43938,5)
(5,3)(4,3)(4,4)(3,4)
@ Octant 5 (1 offset), from (1.43938,4.9212) to (0.0873,4.07936)
@ transition line 0, from (1.43938,4.9212) to (1.43938,4.9212)
@ transition line 1, from (0.5873,4.57936) to (0.0873,4.07936)
(3,5)(1,5)
@ Octant 6 (0 offsets), from (0.0873,4.07936) to (-0.5,1)
@@ with autorounding: from (0.33333,3.83333) to (0,1)
@ transition line 1, from (0,1) to (0,1)
(1,4)(0,4)(0,1).
Tracing edges at line 163: (weight 1)
@ Octant 1 (1 offset), from (1.0873,4.07936) to (1.43938,3.9212)
@ retrograde line from (1.0873,4.07936) to (0.5873,3.57936)
@ transition line 0, from (0.5873,3.57936) to (0.5873,3.57936)
@ transition line 1, from (1.43938,3.9212) to (1.93938,4.4212)
@ retrograde line from (1.93938,4.4212) to (1.43938,3.9212)
@ Octant 8 (1 offset), from (1.43938,3.9212) to (2.91423,3.4142)
@@ with autorounding: from (1.43938,4) to (3.00002,3.49998)
@ retrograde line from (1.43938,4) to (0.93938,4.5)
(1,4)
@ transition line 2, from (0.93938,4.5) to (1.43938,4)
@ transition line 1, from (3.50002,2.99998) to (3.50002,2.99998)
(1,5)(1,4)(3,4)
@ retrograde line from (3.50002,2.99998) to (3.00002,3.49998)
@ Octant 7 (0 offsets), from (2.91423,3.4142) to (3.92122,1.43936)
@@ with autorounding: from (3.00002,3.49998) to (4,1.43936)
@ retrograde line from (3.00002,3.49998) to (3.00002,3.49998)
@ transition line 0, from (3.00002,3.49998) to (3.00002,3.49998)
(3,3)(4,3)
@ retrograde line from (4,1.43936) to (4,1.43936)
@ Octant 6 (0 offsets), from (3.92122,1.43936) to (3.57939,0.5873)
@ retrograde line from (3.92122,1.43936) to (3.92122,1.43936)
@ transition line 1, from (3.57939,0.5873) to (3.57939,0.5873)
@ retrograde line from (3.57939,0.5873) to (3.57939,0.5873)
@ Octant 5 (1 offset), from (3.57939,0.5873) to (1,0.5)
@@ with autorounding: from (3.50002,1.00002) to (1,1)
@ retrograde line from (3.50002,1.00002) to (4.00002,1.50002)
(4,1)
@ transition line 0, from (4.00002,1.50002) to (4.00002,1.50002)
@ transition line 1, from (1,1) to (0.5,0.5)
(4,2)
@ retrograde line from (0.5,0.5) to (1,1)
@ Octant 4 (1 offset), from (1,0.5) to (0.79288,0.29291)
@ retrograde line from (1,0.5) to (1.5,0)
(4,1)(1,1)
@ transition line 2, from (1.5,0) to (1,0.5)
@ transition line 1, from (0.29288,0.79291) to (0.29288,0.79291)
(1,0)
@ retrograde line from (0.29288,0.79291) to (0.79288,0.29291)
(1,1)
@ Octant 3 (0 offsets), from (0.79288,0.29291) to (0.5,1)
@@ with autorounding: from (1.00002,0.49998) to (1,1)
@ retrograde line from (1.00002,0.49998) to (1.00002,0.49998)
@ transition line 0, from (1.00002,0.49998) to (1.00002,0.49998)
(1,0)
@ retrograde line from (1,1) to (1,1)
@ Octant 2 (0 offsets), from (0.5,1) to (1.0873,4.07936)
@@ with autorounding: from (1,1) to (1.33333,3.83333)
@ retrograde line from (1,1) to (1,1)
@ transition line 1, from (1.33333,3.83333) to (1.33333,3.83333)
@ retrograde line from (1.33333,3.83333) to (1.33333,3.83333)
(1,4).
{tracingonline:=1}
f<expr>->let)=];let[=(;show._
(EXPR0)<-xx
{let}
{let}
{show}
>> _1
{showalldependencies}
ypart '=-xpart '-0.66667
{qq:=pen}
{showstats}
Memory usage 1421&459 (231 still untouched)
String usage 34&123 (475&8610 still untouched)
{[repeat the loop]}
! A group begun on line 163 never ended.
<to be read again>
endtext
l.163 ... showstats; bye endtext
I saw a `begingroup' back there that hasn't been matched
by `endgroup'. So I've inserted `endgroup' now.
{endgroup}
(end occurred when else on line 93 was incomplete)
(end occurred when if on line 36 was incomplete)
(end occurred when elseif on line 21 was incomplete)
Here is how much of METAFONT's memory you used:
61 strings out of 536
3714 string characters out of 12324
2770 words of memory out of 3001
272 symbolic tokens out of 2100
8i,36n,9p,167b stack positions out of 30i,100n,150p,500b
(illegal design size has been changed to 128pt)
(some chardp values had to be adjusted by as much as 0.5pt)
(4 font metric dimensions had to be decreased)
Font metrics written on trap.tfm
Output written on trap.gf (5 characters, 920 bytes).